Wikibooks enwikibooks https://en.wikibooks.org/wiki/Main_Page MediaWiki 1.47.0-wmf.18 first-letter Media Special Talk User User talk Wikibooks Wikibooks talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Cookbook Cookbook talk Transwiki Transwiki talk Wikijunior Wikijunior talk Subject Subject talk TimedText TimedText talk Module Module talk Event Event talk User talk:Gentgeen 3 3693 4668383 4643014 2026-09-03T15:14:07Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668383 wikitext text/x-wiki <big><div style="text-align: center;">If you erase someone else's comments to make your own, I will revert without reading what you wrote.</div></big><br /><br /> Thanks Genteen !! --[[User:Karl Wick|Karl Wick]] [[User talk:Karl Wick]] re: [[General Biology/Getting Started/Introduction]] A related question: do you know how to code it so that if I have a floating div-style box I can but a border around the inside of it so that the text in the box does not go all the way up to the edge ? I would like the color of the box to extend another bit beyond where the text ends. I did a trial over at the [[Wikibooks:Sandbox|sandbox]] but was not able to make it work. Thanks !! --[[User:Karl Wick|Karl Wick]] == Thanks == Hi Gentgeen, Thanks for featuring my Tarbes Salad at wikibooks! You make my mother proud. [http://en.wikipedia.org/wiki/User:Leland Leland] == thanks == Thanks for all your work on the cookbook. You have improved it greatly. - [[User:Liblamb|liblamb]] 17:01, 12 Jul 2004 (UTC) :Aww, shucks. [[User:Gentgeen|Gentgeen]] ==Administrator== Hi Gentgeen. As Tuf-Kat is away, I have made you a sysop following the vote at [[Wikibooks:Requests for adminship|Requests for adminship]]. Please make sure you read the relevant policies linked to from [[Wikibooks:Administrators]] before using your sysop powers here, and be careful where those policies differ from those that you are more used to on the English Wikipedia. I'm surprised you have 2000 users and only one bureaucrat. I would like to advise you to nominate someone for the role, especially since your current one is away. Good luck with your adminship. [[User:Angela|Angela]] ([[m:stewards|steward]]) 00:20, 9 Aug 2004 (UTC) ==Hi== Thanks for the welcome, Gentgeen. As you might have guessed, I'm an import from wikipedia. I finally got curious about all those people saying "Take it to wikibooks" and checked it out. Mostly I plan to supplement wikipedia articles with links (Recipes for food dishes seem the most appropriate). [[User:The Steve|The Steve]] 13:10, 26 Sep 2004 (UTC) == Wikipedia recipe == I found a recipe for Garlic parmesan pasta [http://en.wikipedia.org/wiki/Garlic_parmesan_pasta] all by it's lonesome at Wikipedia. I was wondering if there was a procedure for moving such recipes or if I should just copy and paste it over to Wikibooks. The recipe is a dead end page with no links anywhere else in Wikipedia. [[User:Liblamb|liblamb]] 21:46, 30 Sep 2004 (UTC) :Found one for giblet soup too. [http://en.wikipedia.org/wiki/Garlic_parmesan_pasta] [[User:Liblamb|liblamb]] ::Copy and past successful. Find them [[Cookbook:Giblet Soup|here]] and [[Cookbook:Garlic Parmesan Pasta|here]]. I havn't suggested the recipes be deleted in Wikipedia yet. [[User:Liblamb|liblamb]] 20:53, 7 Oct 2004 (UTC) == From a fan == I was just thinking that those Chinese IP addresses needed a range block, and there you are, already there, and done it. Kudos, to you! :) [[User:Dysprosia|Dysprosia]] 08:55, 10 Oct 2004 (UTC) == Thanks == I'm using your stylesheet(hope you don't mind), so I just wanted to say thanks. --[[User:IBB|IBB]] 15:36, 16 Oct 2004 (UTC) == Wikipedia dumps == I was wondering what we do with "Wikipedia dumps," which is my term for when Wikipedians dump an article that doesn't fit in Wikipedia into Wikibooks without taking into consideration the way Wikibooks works. Has there been discussion about this before that I can read? This came up because of this [http://en.wikipedia.org/wiki/Wikipedia:Votes_for_deletion#October_19 page]. The pages now in Wikibooks link only to themselves and the likelyhood of someone finding them is very small by a search. Of course I can create links for it in the Misc. categpru but I was wondering if anything can be added to the conversation at Wikipedia to better inform people on best Wikibooks practice, if there is better practice. Thanks for the help. [[User:Liblamb|liblamb]] 18:33, 19 Oct 2004 (UTC) ---- ;From Panic2k4 talk page no, most of the wikipedia content on wikibooks has been properly credited to the original authors. When it hasn't, the problem is either fixed or the page is deleted. [[User:Gentgeen|Gentgeen]] 22:21, 22 Nov 2004 (UTC) :FYI, I had tried to start discussions about this at [[Wikibooks:Staff_lounge#Copying content from Wikipedia]] and [[w:Wikipedia:Village pump (policy)#Incorporation of Wikipedia articles into copyright works]] before I saw the thread here. -- [[User:Paddu|Paddu]] 11:03, 23 Nov 2004 (UTC) == Cookbook administrator abuse == Hi Gentgeen I would like to ask you, how was Cookbook:Human any less valid an article than [[Cookbook:Chicken]]? Please undelete it. This is not the first time you have taken actions I do not believe are justifiable by policy, and if you have no explanation for this based on policy, it won't be the first time for that, either. --node ==='It is time we defined ourselves': copyright and other concerns === Hello Gentgreen. I am concerned that the material downloaded today (27.10.2004) by Attention-tunnel, originally from the works of Di Murray and Andrew Walker and the late Marc Segar, is not released under the GFDL, or a Creative Commons, and therefore cannot/should not be used on Wikibooks. The '''other''' concern I have is that the material from '''Autism and Computing''' is a 'data dump' and does not fulfill the criteria for a Wikibook, or for that matter a Wikiversity. The third concern of mine is that this page is vulnerable to vandalism, I believe a link-spammer came. Would appreciate if you checked up here. Also, what is the status of the Aspergia Mythos and Ethos in relation to Wikibooks? Sincerely [[User:EuropracBHIT|EuropracBHIT]] 06:40, 27 Oct 2004 (UTC). Thanks for the welcome and the suggestions. I will add some kind of disambiguator. [[User:Danny|Danny]] 16:02, 7 Nov 2004 (UTC) == Thanks old timer == hey there thank you for the heads up. unfortuneately i am unable to download/upload stuff as my contributions to wikipedia are all done from my desk at work. actually thats sort of how i found wikipedia as we have restrictions on internet use and can only surf .org .gov and our intranet. fortuneatly/unfortuneately because i have a lot of time on my hands i can however make contributions. what i need is a way to import images from example nasa.gov into wikimedia or wikibooks/wikipedia whatever. also i am still learning so i need to know how to do it as well. any ideas? --[[User:Larsie|Larsie]] 18:39, 8 Nov 2004 (UTC) == thanks for the help == wow, thanks for the offer. it would actually be etremely helpfull to the wikijunior project if we could get images of the planets from wikipedia articles into the commons. if you are willing it would be much appreciated. --[[User:Larsie|Larsie]] 20:38, 8 Nov 2004 (UTC) == [[Programming:_C_-/-_-/-]] a copyvio? == Please check [[Wikibooks:Staff_lounge#Copying_content_from_Wikipedia]] too. See if that's also a copyright violation. And BTW it could be possible that the wikipedia article itself was a copyvio. BTW, if this just increases traffic to [[Wikibooks:Staff_lounge#Programming:C_plus_plus_and_its_fork_Programming:_C_-.2F-_-.2F-]], I'd be happier :) -- [[User:Paddu|Paddu]] 21:01, 22 Nov 2004 (UTC) :Oops! Sorry I missed the message you'd posted on my talk page. I'll try to compile a list of material copied from Wikipedia. But note that depending on the interest the wikibooks community has on my service I may or may not be doing any good to wikibooks, as explained in [[User talk:Mkn#Programming: C -/- -/-]]. -- [[User:Paddu|Paddu]] 12:04, 26 Nov 2004 (UTC) ---- Hello, Gentgeen just posted a reply to your questions/moderation you should also check a duplication of the problem in your talk page referring wikipedia dumps that was not addressed and it seems that if your interpretation of the GFDL is right wikibooks will have lots of trouble correcting this...--[[User:Panic2k4|Panic]] 22:19, 22 Nov 2004 (UTC) == re: Links == Thanks. I hope I've done those correctly. If not, I wouldn't mind help. I'm also not sure this submission is well-structured for a Wikibooks contribution. It seemed to model one that was already here ([[Nasrudin]]) but I could also see people considering it a "Wikipedia dump". Your thoughts? [[User:Rossami|Rossami]] 00:45, 1 Dec 2004 (UTC) == Re: my user page == oh well your objection and compromise both seem quite fair, and i would be more than willing to change it, if i could work out how to edit the damn thing. If i click on [[User:The bellman]] it takes me to [[w:User:The bellman]] and cause its a cross wiki redirect there is no "redirected from [[foo]]" at the top of [[w:User:The bellman]]. Any Ideas? [[User:The bellman|The bellman]] 03:14, 21 Jan 2005 (UTC) :Ah, now you understand some of the bad things about interwiki redirects. You need to manually construct a url with ''&redirect=no'' at the end in the browser address bar, in this case http://en.wikibooks.org/w/index.php?title=User:The_bellman&redirect=no . You'll also need to do it for your talk page at http://en.wikibooks.org/w/index.php?title=User_talk:The_bellman&redirect=no . :[[User:Gentgeen|Gentgeen]] 09:37, 21 Jan 2005 (UTC) ::Thanks mate. [[User:The bellman|The bellman]] 10:22, 21 Jan 2005 (UTC) == hey GENTGREEN, i have question == ---------------------------------- hello gentgreen. i was a contributor to beating season. i understand how beating season was too controversial for wikibooks. however i would still like to contribute to the project. could i write a book about the history of violence and opression of women? like a real book, not a joke like BEATING SEASON??? -kyle :I replied at [[User talk:67.95.199.114|your talk page]]. [[User:Gentgeen|Gentgeen]] == Please modify main page for me == Hi Gentgeen. As explained in [[Talk:Main_Page#Book_of_the_month]], I would ask you to add 3 lines to the Main Page, in order to include a teaser for the book of the month. Here is a demo of how the Main Page should look after the change: [[User:Andreas_Ipp/Main_Page_suggestion]]. I week ago (before you locked the page) I could have done the change by myself, now I depend on some administrator (which is fine with me). Thanks! --[[User:Andreas Ipp|Andreas Ipp]] 13:04, 23 Jan 2005 (UTC) : I just noticed it was not locked anymore :-) ... I just made the change by myself. --[[User:Andreas Ipp|Andreas Ipp]] 13:15, 23 Jan 2005 (UTC) == Why o why? == Why o why did I not check my [[User_talk:Christiaan|Wikibook talk page]] sooner. All this time I've been editing on Wikipedia and I've been manually signing and time stamping my signature!! Haha, thanks Genteen. :) —[[User:Christiaan|Christiaan]] 22:35, 24 Jan 2005 (UTC) ==advertising== I suggest you take another look at [http://en.wikibooks.org/w/index.php?title=Category%3AWikijunior&diff=0&oldid=90414]. --[[User:68.204.254.4|68.204.254.4]] 09:11, 29 Jan 2005 (UTC) == please distinguish this book == Can you fix this? Please do so, or find someone who can. Every recipie has a link to "Catagories". Oh my. I click on that, and I see... * Abugida writing systems * Ada 2005 feature * Ada programming language * Algebra * Anthropology * Arts That's just the letter A. While algebra may be useful for modifying a recipie, it really does not belong in a cookbook. Catagories from unrelated wiki books should not be leaking into the cookbook. I suspect that the Ada programmers have no use for Albanian recipies, but they can always just go to the cookbook if they get hungry. They don't need to be tempted by delicious Argentine recipies while trying to learn about Ada 2005. Strange non-cookbook stuff also leaks into the "recent changes" page. I suspect I'd also get it if I used the "random module" link, which really should be "random recipie" and "random ingredient". The only thing these wikis might reasonably share would be user accounts, and THAT is not working, at least between Wikipedia and the cookbook. Oh, the suffering. :-( BTW, adding "Cookbook:" to all the links gets old fast. Because of this, and case-sensitivity being enabled, one is required to use the "|" to rename all links. This greatly detracts from the ease-of-use that wikis are known for. If the cookbook were more distinct, this prefix would not be needed. I certainly do understand why things are the way they are. This does not change the simple fact that things are a great big mess. Renaming the "Categories" link isn't of much use, though I guess renaming it to the non-breaking-space character would be an improvement! Really, that link should work within the cookbook and ''only'' within the cookbook. The cookbook seriously does need a domain name for itself. Then some server-side bot can go through and rip out all the "Cookbook:" prefixes. [[User:AlbertCahalan|AlbertCahalan]] 02:44, 31 Jan 2005 (UTC) The [[Special:Specialpages]] stuff is unusable too. For example, I look in the [[Special:Newimages|New Images gallery]] and see nothing about the cookbook. The cookbook gets drowned out by physics and biology. Everywhere I look, wiki features are unusable, with cookbook data being crowded out by unrelated stuff. Everywhere I look, there are links that take me to some generic place outside the cookbook. Even [[Main Page]] is misleading and wrong, and the reason why every cookbook recipe has to include a link back to the main page of the cookbook. [[User:AlbertCahalan|AlbertCahalan]] 03:17, 1 Feb 2005 (UTC) == featured recipe == Practically nobody in the USA can use this. We don't have scales or balences in our kitchens at all, never mind ones using French units. It's OK to have meat in pounds, or by volume. Everything else must be by volume. Quantities much larger than a cup can be in those French units, because large glass measuring cups are marked both ways. For everything else, we need traditional units. This is way more important than following the template, having a picture, or almost anything else. BTW, the recipe intro and the categorization+title combo are offensive to a billion people. Not me, but... expect some vandalism. Kashmir is very much disputed, with 3 countries claiming it or parts of it. == Forking policy == Do take a look at the proposed [[wikibooks:forking policy|forking policy]]; I'd be appreciative of any input before I start spamming it to other interested parties ;) However, hand-in-hand should be a dispute resolution policy also, though since 'books is smaller I doubt we'd have the numbers for the sort of structure 'pedia proper has. Thanks [[User:Dysprosia|Dysprosia]] 01:38, 15 Feb 2005 (UTC) == cookbook images == I think it's kind of important to be sure that the images match up with the recipes. Grabbing possibly unrelated images from the commons can be very misleading. For example, you had gingerbread men attached to the gingerbread recipe. (gingerbread is a spice bread, in loaf form, but kind of wide and short more like a cake) :Good catch. When I added that image, the description wasn't there, and I didn't check the recipe very well. [[User:Gentgeen|Gentgeen]] 00:06, 17 Apr 2005 (UTC) == image locations == Why would somebody not use the commons for an image? I guess I could see it for an ingredient or tool image being used under the "fair use" provision of copyright law. This reason should not apply to recipes. Hopefully there won't be any need to take advantage of fair use; unlike Wikipedia there shouldn't be any special must-have images that can't be redone. (for example, I can make a new spatula image but not one of an airplane hitting the WTC) Maybe a Julia Child or Iron Chef image? I guess I just don't see the need for placing images anywhere other than in the commons. The commons has a somewhat functional way to organize images, unlike wikibooks AFAIK. [[User:AlbertCahalan|AlbertCahalan]] 22:28, 23 Apr 2005 (UTC) :I agree, I prefer commons to specific project uploads myself. However, wikibooks doesn't have control of commons, and the commons pages don't list which articles and modules the image is used on. Additionally, someone can upload a different image to wikibooks with the same title, overwriting the one at commons. In my mind, none of these is important enough to not use commons, but other users may think differently. == subpages == I would really like to keep the cookbook free of subpage usage. The idea seems to be somewhat poorly thought through; it assumes a strictly tree-structured book. The header it generates is ugly and inflexible, being redundant to any normal cookbook header. Plus a more obscure annoyance: the "/" makes one-article-per-file scripted processing much more awkward on a UNIX-like system. :I agree. When I first got here some of the recipes were at <nowiki>[[Cookbook:Recipies/Recipe name]]</nowiki> (sic), which just seemed wrong. [[User:Gentgeen|Gentgeen]] 20:18, 24 Apr 2005 (UTC) == double boiler == I think that is way off. Double boilers sure do contact the water. I'd never heard of a bain-marie before, but the Wikipedia article seems to indicate that a bain-marie is used in an ''oven''. Presumably this would mean the inner pot needs a lid, to avoid baking, and the handle would need to be something that can't melt. I'm fairly sure the "bain-marie" picture is not in fact a bain-marie. It definitely qualifies as a double-boiler. == chicago sirloin == I don't believe that Midwestern recipes is an appropriate category for [[Cookbook:Chicago Sirloin with Cabernet Balsamic Reduction|Chicago Sirloin with Cabernet Balsamic Reduction]]. This is a meal with more European influences than anything Midwestern, and certainly does not deserve to be grouped in with chicken wings and Tater tot casserole. Thanks for your time. [[User:Ntm|Ntm]] 05:40, 1 May 2005 (UTC) Chicago sirloin is a style of cooking the steak - chargrilled and rare, not neccesarily the cuisine that the recipes that comes from. But thanks for your input, I will definitely recategorize this recipe when I find one that fits. Thanks! [[User:Ntm|Ntm]] 23:39, 1 May 2005 (UTC) == anon IP blocks == Infinite IP blocks have two problems: #IP addresses can get reassigned (per-user, or via sale of a whole netblock with thousands of addresses). #Some of these may be temporarily infected zombie machines. I can't help but be reminded of the problem of being unable to send email because the previous IP address owner caused trouble. [[User:AlbertCahalan|AlbertCahalan]] 07:49, 9 May 2005 (UTC) == [[Cookbook:Campfire Trout]] == I see that Cookbook:Campfire_Trout requires bacon, but... why? It isn't used as far as I can see. [[User:AlbertCahalan|AlbertCahalan]] 07:50, 14 May 2005 (UTC) == cookbook things == There are a couple things on the [[Talk:Cookbook]] page that I'd like your opinion on. If you have a few minutes I'd appreciate your attention. [[User:Kellen|Kellen]] 07:21, 23 Jun 2005 (UTC) :: Thanks for the comment on the advertising. I'd also like your opinion on tagging each recipe with Category:Recipe (to create an index). This is buried in the "categorization proposal" that Albert was not too thrilled about =) [[User:Kellen|Kellen]] 00:55, 27 Jun 2005 (UTC) == Proposal for policy overhaul == As a fellow admin who might be interested, it might interest you that I've started to think about changes to existing policy and project scope so that policies are more clearly defined (as suggested by [[User:Aya]], who claims existing policies to be ambiguous) and more open (as suggested by [[User:Robert Horning]] over the biography debacle). I've made a post on textbook-l ([http://mail.wikipedia.org/pipermail/textbook-l/2005-July/002415.html]) as a result, please reply to my talk page for feedback. [[User:KelvSYC|KelvSYC]] 05:49, 26 July 2005 (UTC) == welcome back == yay you're editing again! [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 23:50, 5 August 2005 (UTC) == citations == Hey, perhaps for references like [[Talk:Cookbook:Outdoor_cooking]] we could just standardize on some citation format. There was some discussion of this in the [[Wikibooks:Staff lounge]]. [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 05:44, 18 October 2005 (UTC) == Pipe trick == I'm editing [[Cookbook:Clear soup]] and discovered that 'pipe trick' is perfect thing and makes work with cookbook articles lot easier. For example, until now I was not aware that writing <code><nowiki>[[cookbook:carrot|]]s</nowiki></code> will provide correct link to [[cookbook:carrot|carrot]]s. Maybe you should write about pipe trick in Cookbook guidelines for contributors? --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 10:54, 8 January 2006 (UTC) :Yeah, the pipe trick should have started working when "Cookbook:" became an actual namespace. I'll go check out the cookbook editing guidlines and recipe templates, and note the new "trick" for our editors. Thanks, [[User:Gentgeen|Gentgeen]] 19:22, 9 January 2006 (UTC) ==Policy review== Policy is not the most exciting subject at Wikibooks but we do have some major unresolved issues. The most important issue, in my opinion, is [http://en.wikibooks.org/wiki/Wikibooks:Dispute_resolution Dispute resolution] which starts by declaring that: '''"Currently there is no official organized process to resolve disputes between users"''' The suggested remedy for this is: [[Wikibooks:Ad hoc administration committee]] which puts into place the absolute minimum in terms of an enforcement apparatus. The second most important is [[Wikibooks:No personal attacks]] where a vote has recommended the policy be enforced but it still languishes as "proposed". The third policy that is needed and which will prevent edit disputes from getting out of hand is [[Wikibooks:Editing disputes policy]]. Other policies that need consideration are at: [http://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines Policies and guidelines]. Please spare a minute or two to peruse these issues. [[User:RobinH|RobinH]] 12:17, 28 April 2006 (UTC) == PAGENAME == Hiya. I saw that you added <nowiki>{{PAGENAME}}</nowiki> to a few recipes. While this works in the short term, I think it's a waste of your (or anybody's) time to do that. We should strongly encourage the mediawiki developers to provide some sort of fix that actually works for us rather than twiddling with magic page variables. If we are forced to use PAGENAME, I think we should see if Uncle G or someone else who is proficient with bots could help us out, rather than doing it by hand. [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 00:25, 6 May 2006 (UTC) : You might also recall that doing: <nowiki>[[Category:Cat name|]]</nowiki> will automagically sort by <nowiki>{{PAGENAME}}</nowiki> for you. Less typing =) [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 22:22, 20 June 2006 (UTC) ::It will? I'll have to try that. [[User:Gentgeen|Gentgeen]] 03:03, 21 June 2006 (UTC) == cookbookwiki == What do you make of [http://cookbookwiki.com cookbookwiki]? [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 18:40, 7 May 2006 (UTC) : I actually found it off [http://en.wikipedia.org/w/index.php?title=User_talk:Gentgeen&diff=32015169&oldid=31560607 your WP talk page] =) [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 23:59, 11 May 2006 (UTC) == monobook == You're totally right! The whole body has class .ns-102! This could be pretty fun; we could even override the logo! Imagine superimposing a knife and fork on top of it or something. [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 02:08, 6 July 2006 (UTC) == [[Study Guide for CFA Exam Level III]] == you deleted this book on 21 June, 2006 as a "copyvio". There is currently a request on [[WB:VFU]] to have this book undeleted, under the stated assumption that the author would remove any material in violation of copyright or fair use. I don't know enough about the material to cast a vote on this manner, but if you feel that the material could be made to not violate policy if it were undeleted, i will vote to undelete. --[[User:Whiteknight|Whiteknight]]<small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 19:24, 19 July 2006 (UTC) *Hey, Gentgeen. Could you look at [[WB:VFU]] again? Some discussion has been added. I believe I can quickly remove the offending content and am eager to start working on this guy again. Thanks. --[[User:VivekVish|VivekVish]] 14:39, 27 July 2006 (UTC) == [[Wikibooks:General voting rules/Proposal]] == I want to call the attention of all wikibookians, especially active admins to the discussion about the new voting policy. Wikibooks currently does not have a concrete voting policy in effect, so the adaptation of this policy will potentially create immediate differences in the way business is conducted here. Due to large amounts of discussion, changes, and dissention, there are several versions of this policy being considered: *[[Wikibooks:General voting rules/Proposal/Version 1|Version 1]] Written by [[User:Whiteknight]] *[[Wikibooks:General voting rules/Proposal/Version 2|Version 2]] Written by [[User:Jguk]] *[[Wikibooks:General voting rules/Proposal/Version 3|Version 3]] [[User:RobinH]]'s revision of Jguk's version *[[Wikibooks:General voting rules/Proposal/Version 4|Version 4]] Written by [[User:Kellen]] *[[Wikibooks:General voting rules/Proposal/Version 5|Version 5]] Whiteknight's Revision of Kellen's Version. Also, there are additional issues being discussed, such as the inclusion of a "minimum contributions" clause, that will limit users with less then 20 votes from editing. Also, there is a proposed clause that would allow this 20 vote minimum to be raised in response to abuse. I am sending this same message to all currently active admins. I hope you are able to come in and give your opinions on this matter. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:47, 11 August 2006 (UTC) == Thanks == For fixing the main page (and the related vandalism) and it's been a while since you've gotten new messages I see :-) [[User:MichaelBillington|MichaelBillington]] 06:57, 27 September 2006 (UTC) == Please comment or vote... == [[Wikibooks:Request for enabling special:import]] This would make the transwiki of recipes from en.wp a lot easier (recipes seem to make up the majority of [[w:Category:Copy to Wikibooks]]). The folks at meta have asked for a show of local support for turning it on. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 12:10, 12 October 2006 (UTC) ==Sorry... one more vote please?== One more thing to smooth out the transwiki process... [[Wikibooks:Request_for_enabling_special:import#Additional_request]]. We're asking that "Transwiki:" be given namespace status so we can import to it directly. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 19:56, 16 October 2006 (UTC) == [[Analog and Digital Conversion/Other Reconstructors]] == On 17 July you deleted this page, I assume because it was a stub? I've undeleted it, because I do plan on adding more material to it (even if i have been slow in doing so). I hope you don't mind. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 16:08, 27 October 2006 (UTC) == Hooray for fixing the main page == Thanks for fixing [[Template:New]] so that the main page is normal again. [http://en.wikibooks.org/w/index.php?title=Template:New&diff=next&oldid=656962] I can't believe that the main page was like that for an hour. I was trying to figure out what was the cause of the weird formatting. So again, thanks! -[[User:Hyad|Hyad]] 08:34, 21 November 2006 (UTC) :Thanks. [[User:Gentgeen|Gentgeen]] == cookbook wantedpages script == I've done some minor tweaks on the wantedpages filtering (no more underscores); [[User:Kellen/Scripts]]. [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 00:02, 19 January 2007 (UTC) :Cool. I've never actually used the script, however. I always update the list by hand, which is probably a waste of time, but it's my time to waste. [[User:Gentgeen|Gentgeen]] 18:45, 19 January 2007 (UTC) : Give it a try. It's easy enough if you have a nix system and the basic tools (lynx, grep, and sed). It'll format everything automagically for you. Maybe I could make a cron script to update it here... hrm. [[User:Kellen|Kellen]]&nbsp;<sup>[[User_talk:Kellen|T]]</sup> 20:10, 19 January 2007 (UTC) == Cookbook category order == G'day mate, I [[Cookbook talk:Table of Contents#Category sort enhancement request|recently]] added the <nowiki>{{DEFAULTSORT}}</nowiki> magic word to some of the Cookbook templates, so you no longer need to specify the sort for most pages. For those that you do, e.g. non-ANSI page name, you should specify it as a parameter to the template, e.g. <nowiki>{{recipe|Aebleskiver}}</nowiki>. cheers, [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 23:56, 27 May 2007 (UTC) :Thanks. [[User:Gentgeen|Gentgeen]] == Bfbggon == Hi. This guy Bfbggon keeps putting these sick pictures on my talk. He used to keep putting it on after every time I deleted it, but he's not doing that anymore. What happened to him? ==My reviewer request== Hi Gentgeen: Please consider supporing [[Wikibooks:Requests for permissions#Moby-Dick4000|my request]] to become a reviewer. [[User:Moby-Dick4000|Moby-Dick4000]] ([[User talk:Moby-Dick4000|talk]]) 01:05, 30 August 2009 (UTC) == [[Wikibooks:Requests for permissions]] == Due to inactivity, you've been nominated for removal of the administrative tools. If you wish to support or oppose the matter, please visit the page linked above. Thank you for your contributions up to this point. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 13:37, 22 December 2009 (UTC) == WCI 2011 : Accelerating Wikibooks : Would like to discuss! == Hello! I will be delivering a Talk at the Wikimedia Conference India 2011 on the topic of "Accelerating Wikibooks". Over the next few days, I aim to make the proposal more and more wholesome and relevant. I'd like to discuss with you about the proposal and hope you can recommend me a few names on Wikibooks with whom I can discuss this. I'd be very happy if you could discuss the proposal at [[User:Thewinster/Accelerating_Wikibooks]] --[[User:Thewinster|Thewinster]] ([[User talk:Thewinster|discuss]] • [[Special:Contributions/Thewinster|contribs]]) 08:20, 26 September 2011 (UTC) === Summary of the proposal === This is not a summary of the final talk, only a tentative guideline. * Create Roadmaps for a book * Define Learning Outcomes * Annotate and Discuss new content available from around the web. * Minor tweaks and fixes which concentrate on crowdsourcing. * Identifying Small Contribution that advance a book and designing good UIs and triggers according to B.J. Fogg's Behavior Change Model, 8 Step Design Process. The paper can be found here at [http://www.bjfogg.com/design_files/page8_1.pdf Persuasive Design : Eight Step Process by B. J. Fogg] == Hungarian Cheese Dumplings == Hello @[[User:Gentgeen|Gentgeen]]! It looks like back in 2004 [https://en.wikibooks.org/w/index.php?title=Cookbook:Kovaim_(Hungarian_Cheese_Dumplings)&oldid=23915 you edited] the [[Cookbook:Kovaim (Hungarian Cheese Dumplings)|Kovaim]] recipe and stated that they were Hungarian. Someone [https://en.wikibooks.org/w/index.php?title=Cookbook_talk:Kovaim_(Hungarian_Cheese_Dumplings)&oldid=4185973 has since asked about it], and I was wondering if you could explain what made you decide they're Hungarian. Thanks!! —[[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 16:18, 2 October 2022 (UTC) == I have added a tag to a page you created == Hi! I'm JJPMaster, and I recently reviewed your page, [[Cookbook talk:Bubble_and_Squeak]]. I have added a tag to the page, because it <strong>may meet the [[Wikibooks:Deletion policy#Speedy deletions|criteria for speedy deletion]]. This means that it can be deleted at any time. The reason I provided was:</strong> <blockquote><strong>History merge completed; not needed</strong></blockquote> <strong>If you believe that your page should not be deleted, please post a message on [[Cookbook talk:Bubble and Squeak|the page's talk page]] explaining why. If your reasoning is convincing, your page may be saved.</strong> If you have any questions or concerns, please [[User talk:JJPMaster|let me know]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 04:15, 8 January 2025 (UTC) == I have added a tag to a page you created == Hi! I'm JJPMaster, and I recently reviewed your page, [[Transwiki:JJPMaster/Masaledaar chole]]. I have added a tag to the page, because it <strong>may meet the [[Wikibooks:Deletion policy#Speedy deletions|criteria for speedy deletion]]. This means that it can be deleted at any time. The reason I provided was:</strong> <blockquote><strong>[[WB:BADTRANSWIKI]]</strong></blockquote> <strong>If you believe that your page should not be deleted, please post a message on [[Transwiki talk:JJPMaster/Masaledaar chole|the page's talk page]] explaining why. If your reasoning is convincing, your page may be saved.</strong> If you have any questions or concerns, please [[User talk:JJPMaster|let me know]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 14:35, 8 January 2025 (UTC) ==[[:Cookbook talk:Grilled_Cheese_Sandwich]]== {{tmbox|type=delete|text='''Gentgeen, please [[Wikibooks:Requests for deletion#Cookbook talk:Grilled_Cheese_Sandwich|share your thoughts]] about whether to [[WB:WIW|keep]] or [[WB:DP|delete]] "[[:Cookbook talk:Grilled_Cheese_Sandwich|Cookbook talk:Grilled_Cheese_Sandwich]]".'''<br />You are being notified because you have contributed to this work. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 05:56, 11 January 2025 (UTC)}} ft7gdkq6iovyocyp4e5bqgysniuupjm User talk:Guanaco 3 7582 4668345 4651072 2026-09-03T14:33:22Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668345 wikitext text/x-wiki Guanaco, [[Wikibooks:Welcome|Welcome]] to wikibooks. I see you've been making some corrections to the [[cookbook:Table of Contents|cookbook]], and I'd like to thank you! The more eyes checking things, the better the project will be. If you made any edits before you created your username, ask an [[Wikibooks:Administrators|admin]], and they'll be able to credit your account with the edit. If you make a comment in a talk page, and you'd like to sign your name, just use three tildies, like this: <code><nowiki>~~~</nowiki></code>. To add a time stamp, just use four of them. Again, welcome. [[User:Gentgeen|Gentgeen]] 07:43, 19 Apr 2004 (UTC) ==Admin== You are now a [[Wikibooks:Administrators|Wikibooks Admin]]. Congratulations! [[User:TUF-KAT|TUF-KAT]] 21:43, 16 Jun 2004 (UTC) ==Cconceicao== What are your guidelines considering removing links and signatures? All external links are evil? Just Companies? Or not in the first Page? :Signatures and email addresses are not supposed to be used in the main namespace. External links are okay, if they point to a free (at least ''gratis''), useful, informational resource relevant to the topic. There is no reason we should ever have a "<nowiki>[http://www.psd.ro/?coruptie Coruptie]</nowiki>" link on the Wikibooks portal or a link to hukuki.net anywhere. [[User:Guanaco|Guanaco]] 12:19, 22 Jun 2004 (UTC) ::Thanks - --[[User:Cconceicao|PTCalex]] 18:48, 22 Jun 2004 (UTC) == Deleting articles == hi before you delte articles like [[TeXShop]] which have only one or a few links in it, you should check these links. in this case the linked page [[TeXShop: FAQ: Schriften]] is now linked by no other article. you should start deleting in the last element and not in the toplevel ones. --[[User:Moolsan|Moolsan]] 10:08, 26 Jun 2004 (UTC) Thank you for the help. Im new to this and I think its a great idea. == Moved Modules == Thanks for renaming it. I guess the name I came up with at first; "A Neutral Look on OS's" doesn't quite make as much sense as "A Neutral Look at Operating Systems". Thanks again for coming up with something better.--[[User:Hyperlink|Hyperlink]] 07:05, 21 Mar 2005 (UTC) == bot == Touching lots of articles is rude. It messes up the history. What the heck are you planning to do anyway? :The bot was not supposed to actually edit the articles' history. The goal of touching all the articles was to correct problems with "What links here" image information created when Wikibooks was upgraded from v1.2 to v1.3. I noticed that this wasn't working as it used to in v1.3, so I stopped the bot. [[User:Guanaco|Guanaco]] 22:05, 28 Mar 2005 (UTC) == My interwiki redirect == Hi Guanaco, What was wrong with my interwiki redirect? I know it didn't actually work, but I thought it was a good indicator to other users that I was directing them elsewhere. I'm maintaining only one user page, on Wikipedia, to save the hassle of updating it for every Wikimedia project I'm involved with (mainly Wikibooks, Wikipedia, and Wikimedia Commons). If you have valid concerns about me using a redirect in the way that I did, then I would be happy to replace it with an explicit external link. ''(''<sub>Donovan</sub>|[[w:en:User:Geocachernemesis|Geocachernemesis]]|<sup>[[User_talk:Geocachernemesis|Interact]]</sup>'')'' 03:21, 11 Jun 2005 (UTC) :Sorry, my mistake. I thought the link actually worked. Never mind; the link is okay. [[User:Guanaco|Guanaco]] 03:42, 11 Jun 2005 (UTC) ::That's okay, I needed to write something there anyway. ''(''<sub>Donovan</sub>|[[w:en:User:Geocachernemesis|Geocachernemesis]]|<sup>[[User_talk:Geocachernemesis|Interact]]</sup>'')'' 04:37, 11 Jun 2005 (UTC) == Adminship == BTW, thanks for nominating me for adminship. I don't know if I have a chance yet, but we'll see.;) ''(''<sub>Donovan</sub>|[[w:en:User:Geocachernemesis|Geocachernemesis]]|<sup>[[User_talk:Geocachernemesis|Interact]]</sup>'')'' 03:24, 11 Jun 2005 (UTC) == Proposal for policy overhaul == As a fellow admin who might be interested, it might interest you that I've started to think about changes to existing policy and project scope so that policies are more clearly defined (as suggested by [[User:Aya]], who claims existing policies to be ambiguous) and more open (as suggested by [[User:Robert Horning]] over the biography debacle). I've made a post on textbook-l ([http://mail.wikipedia.org/pipermail/textbook-l/2005-July/002415.html]) as a result, please reply to my talk page for feedback. [[User:KelvSYC|KelvSYC]] 05:53, 26 July 2005 (UTC) == Sherlock Holmes == hey guanaco, are you going to be putting sherlock holmes back up soon? I realize that you wikipedia folks are a bunch of pedantic crazies but I didnt really have any problem with the text so hopefully this isnt a permanent deletion :It is a permanent deletion. You can repost the Sherlock Holmes text at [http://www.wikisource.org Wikisource]. Wikibooks is for original books and ''annotated'' texts only. [[User:Guanaco|Guanaco]] 00:37, 17 November 2005 (UTC) == Undeletion == The modules that you undeleted (Cookbook:Human and Naturism) were deleted again. If you want to open a discussion on undeleting something, could you please use the [[Wikibooks:Votes for undeletion]] ([[Wikibooks:Votes for undeletion|WB:VFU]]) page, instead of undeleting it? --[[User:Kernigh|Kernigh]] 03:16, 19 November 2005 (UTC) :I undeleted Cookbook:Human because it was already on VFU. [[Naturism]] had been speedily deleted improperly, so I speedily undeleted it. [[User:Guanaco|Guanaco]] 07:16, 19 November 2005 (UTC) == Jokebook == I don't think it makes sense to say that if a book on some topic could conceivably be totally rewritten to turn it into a textbook, that makes it valid to keep. Could we have a valid textbook on humor? I suppose so, there must be a class somewhere on the subject. But such a book would not be a jokebook. There is nothing wrong with jokebooks. There's no reason to abuse this one by turning it into a textbook. But there's also no reason for us to keep it here on Wikibooks, since it is not a textbook and never will be. --[[User:Jimbo Wales|Jimbo Wales]] 17:10, 25 November 2005 (UTC) :The Jokebook seems to be mostly original research (if you can call it that). 90%+ of these jokes are unverifiable, being the original creations of the book's authors or the authors' friends. For that reason, I have changed my vote on VfD. [[User:Guanaco|Guanaco]] 22:05, 25 November 2005 (UTC) Cool. You've known me for a long time. If you are in a good position to carry my good wishes to Rob, please do so. I am not sure why he thinks I'm personally attacking him, but I may have overlooked some stray remark I made which was inappropriate. Any help you can give in resolving this conflict would be most appreciated. I have deep respect for Rob and regret anything I may have done to offend him. --[[User:Jimbo Wales|Jimbo Wales]] 03:16, 26 November 2005 (UTC) :I'm not sure I can do much, but I will try to help in any way possible. [[User:Guanaco|Guanaco]] 17:53, 26 November 2005 (UTC) == Japanese:Videogame == I see that you deleted all the Japanese:Videogame pages. Can I please have the text to Japanese:Videogame:General back, as I wish to readd it. There is no copyright problem with this page, add it was created after all the delete votes were passed. [[User:Gmcfoley|Gmcfoley]] 00:55, 26 November 2005 (UTC) :I've restored the page. You might want to copy it quickly before someone else deletes it. [[User:Guanaco|Guanaco]] 04:10, 26 November 2005 (UTC) Thanks, I got the text. You can delete the page again, I will readd the information to a different page. Thanks, [[User:Gmcfoley|Gerard Foley]] 19:52, 26 November 2005 (UTC) == Crime Textbook == I would appreciate a delete vote on this [[Wikibooks:Votes for undeletion#The Manual of Crime|VfUndelete]]. I think that a vote from you would carry weight and provide some added direction to see Wikibooks back to following its mission. I wrote off wikibooks, but the recent comments on foundation-l have made me reconsider that decision. [[User talk:Trödel|Trödel]] 22:18, 29 November 2005 (UTC) == I'm still here == Thank you, in a small way, for taking down my request for de-adminship. I'm trying to take a break from the politics of what is going on here, in part to cool my own head down a bit. I think Jimbo was wrong in many things, and I do feel that there were personal attacks by him against myself. Foundation-l got particularly blistering for a bit. I need to bury the hatchet and move on though. I think Jimbo does have his heart in the right place, and I'll be the first to admit that some house cleaning needed to be done here on Wikibooks. I'm trying to concentrate on more mundane things including for now [[AP Computer Science]] and my perennial Wikibook that I've been working on seemingly forever ([[Serial Programming|Programming:Serial Data Communications]]). That is why I came to Wikibooks, and these are very non-controvercial so I don't need to get buried into a bunch of debate over them, generally speaking (I did manage to piss off one user over the serial data Wikibook, however). When I get back into doing more admin duties, I think I'm going to try and concentrate on pushing [[Wikibooks:Card Catalog Office]] and turning it into something worth while. I also want to clean up the stack of orphaned book modules that have the deadwood of much of Wikibooks that needs to be cleaned up. Having admin status is not necessary for that strictly, but it will help. There are close to 200 modules from the days before Wikibooks broke up into multiple languages still here with the majority of that in German. All of that needs to be deleted eventually. None of that needs (at least what I've seen so far) any consent from Jimbo nor does it impact his plans for what he has done other than his orphaning a bunch of modules due to how he deleted [[Jokebook]] and [[How to get a date]]. Even that would not really be controvercial other than some admin would have to remember that all Jokebook material would have to be researched and found to make sure it all was deleted. Wikibooks is particularly awful if the admin doesn't get it all cleaned up on some random page deletion, or even when the "title" page gets modified and a module is accidentally unlinked. Thank you as well for being active as an admin and in general a good editor/user during this period. I hope everything settles down a bit and the policies get reworked into something that everybody can agree upon. It is this issue in particular that I feel needs the support of Jimbo and not arbitraryness for particular content. If policies can be clarified and worked out completely, things like [[Jokebook]] will be automatically deleted without contention within this community. The side issue of the relationship between Wikicities and Wikimedia projects is something that is going to come to a head, but I'm not at the moment ready to take on that issue. BTW, you may want to look at this [http://mail.wikimedia.org/pipermail/foundation-l/2005-November/005243.html e-mail message that was just posted on Foundation-l]. I don't understand the implications, but it does affect you and what I've been talking about as well. --[[User:Robert Horning|Rob Horning]] 07:51, 30 November 2005 (UTC) == SORBS == After discussion with Craig Spurrier I found more reliable tool than SORBS and I will be more careful when blocking IP's. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 23:09, 7 January 2006 (UTC) ==Policy review== Policy is not the most exciting subject at Wikibooks but we do have some major unresolved issues. The most important issue, in my opinion, is [http://en.wikibooks.org/wiki/Wikibooks:Dispute_resolution Dispute resolution] which starts by declaring that: '''"Currently there is no official organized process to resolve disputes between users"''' The suggested remedy for this is: [[Wikibooks:Ad hoc administration committee]] which puts into place the absolute minimum in terms of an enforcement apparatus. The second most important is [[Wikibooks:No personal attacks]] where a vote has recommended the policy be enforced but it still languishes as "proposed". The third policy that is needed and which will prevent edit disputes from getting out of hand is [[Wikibooks:Editing disputes policy]]. Other policies that need consideration are at: [http://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines Policies and guidelines]. Please spare a minute or two to peruse these issues and add a comment and/or a vote. [[User:RobinH|RobinH]] 12:20, 28 April 2006 (UTC) == New pages == Huh? Please link me to where I've created pages with <nowiki>{{stub}}</nowiki>, because I never recall doing that. I think you made the mistake of posting on the wrong user's page. Since you haven't edited in a while, maybe your account has just been hijacked and you gave me a random message. Respond on my talk page if you actually wrote that on purpose. Thanks. -[[User:Withinfocus|Matt]] 02:09, 27 July 2006 (UTC) == [[Wikibooks:General voting rules/Proposal]] == I want to call the attention of all wikibookians, especially active admins to the discussion about the new voting policy. Wikibooks currently does not have a concrete voting policy in effect, so the adaptation of this policy will potentially create immediate differences in the way business is conducted here. Due to large amounts of discussion, changes, and dissention, there are several versions of this policy being considered: *[[Wikibooks:General voting rules/Proposal/Version 1|Version 1]] Written by [[User:Whiteknight]] *[[Wikibooks:General voting rules/Proposal/Version 2|Version 2]] Written by [[User:Jguk]] *[[Wikibooks:General voting rules/Proposal/Version 3|Version 3]] [[User:RobinH]]'s revision of Jguk's version *[[Wikibooks:General voting rules/Proposal/Version 4|Version 4]] Written by [[User:Kellen]] *[[Wikibooks:Decision making|Version 5]] Whiteknight's Revision of Kellen's Version. Also, there are additional issues being discussed, such as the inclusion of a "minimum contributions" clause, that will limit users with less then 20 votes from editing. Also, there is a proposed clause that would allow this 20 vote minimum to be raised in response to abuse. I am sending this same message to all currently active admins. I hope you are able to come in and give your opinions on this matter. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[user:Whiteknight/Book Foundry|projects]])</small> 20:47, 11 August 2006 (UTC) == Massive Reverts == I noticed you massively reverted pages I tagged for speedy deletion that were either broken redirects due to contents being moved to a different project or were unused redirects that don't follow [[Wikibooks:Naming policy|WB:NP]], were unlikely to be used, could only result in false positives when doing a search and seemed to be within the rules for speedy deletion. So why the massive reverts? --[[User:Darklama|darklama]] 00:29, 16 October 2006 (UTC) :I didn't realize I reverted to any broken redirects, but I'll delete those as soon as the [[Special:BrokenRedirects]] cache updates. As for the others, I believe it would be best to keep them, because it's possible there are links to them from external sites, such as other Wikibooks projects. There shouldn't be any problem with false positives as long as we delete the broken ones; users who find the redirects in a search will be directed to the target page. [[User:Guanaco|Guanaco]] 03:49, 17 October 2006 (UTC) ::Careful! Some of those really ''did'' need to be deleted, because they're redirects to a video game guide that has since migrated to one of the VG wikis. ::Nice to see you back, but you should really go over some of the recent policy discussions, as things have evolved a bit over the past year or so.--[[user:SB Johnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[user talk:SB Johnny|<span style="color: green;">talk</span>]]</sup> 10:11, 18 October 2006 (UTC) :::The ones that really need to be deleted will show up on [[Special:BrokenRedirects]] and in the next XML dump, and I'll take care of them. [[User:Guanaco|Guanaco]] 20:10, 18 October 2006 (UTC) == Wikimanual of Gardening pages == ...generally should just keep all the transwikied information, since isolating a tidbit just makes them into itty-bitty stubs. The /sowing version was actually a lot better than the /seeds section. Please don't delete materials from the pages of a book that you are not familiar with. OTOH, your thoughts would be appreciated on [[Help talk:Transwiki|Wikibooks talk:Transwiki Rules]]. --[[user:SB Johnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[user talk:SB Johnny|<span style="color: green;">talk</span>]]</sup> 21:27, 19 October 2006 (UTC) == deleting pages moved to other domains == Hello Guanaco, I just saw you deleted Spanish Wikiversity pages. They had been moved to a Spanish domain, without the Import option (because then it didn't existed). In order to respect the GFDL, a link to its history page in this domain had been created. Now, with the page deleted, we are violating the GFDL. :O( Be careful with that next times, --[[User:Javier Carro|Javier Carro]] 17:00, 20 October 2006 (UTC) :If you can link to these pages, I can undelete them and have a Spanish Wikiversity admin import them properly. [[User:Guanaco|Guanaco]] 20:57, 20 October 2006 (UTC) ::[[User:Javier Carro/es.wikiversity pages to be undeleted]]. I am admin in es.wikiversity. But, at the moment, we only can import from es.wikibooks and meta. If you can recover these pages, I'll request that the import is activated for this domain also. Thank you, --[[User:Javier Carro|Javier Carro]] 08:12, 22 October 2006 (UTC) == table syntax mangled == I'm afraid your bot messed up this page http://en.wikibooks.org/w/index.php?title=Spanish/Lesson_4 - [[User:Ulph|Ulph]] 22:12, 20 October 2006 (UTC) :I've fixed it. Whoever originally made the table was using newlines in formatting the table where spaces would be appropriate. [[User:Guanaco|Guanaco]] 22:15, 21 October 2006 (UTC) == Happy New Year John! == Happy Holidays! [[User:Mike Garcia|Mike Garcia]] 23:55, 5 January 2007 (UTC) == Issue Guide VfD == The work Issue Guide was [http://en.wikibooks.org/wiki/Wikibooks:Votes_for_deletion#Issue_Guide tagged for deletion on Wikibooks], your input would be welcomed. --[[User:Panic2k4|Panic]] 17:47, 11 October 2007 (UTC) == Nomination for de-adminship == You have been inactive for a year, and as such you've been [[WB:RFA#Guanaco.C2.A0.28_talk.C2.A0.7C.C2.A0_email.C2.A0.7C.C2.A0_contribs.C2.A0.7C.C2.A0logs.29|nominated for de-adminship]]. If you wish to contest your de-adminship you can do so on the included linked page. You do not have email enabled, so this is the only way to contact you that I know of. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 18:34, 20 October 2007 (UTC) ==Import huggle info== I have imported speedy deletion criteria onto Huggle, but the templates don't work, so don't use them yet. There are 4 levels of warn, but the eort does not work. RfD does not work. That is all. <span style="font-variant: small-caps" class="vcard"><span class="fn n nickname">[[User:PokestarFan|PokestarFan]]{{*}}[[User talk:PokestarFan|Talk]]{{*}}[[Special:Contributions/PokestarFan|Contributions]]</span></span> 11:33, 13 June 2017 (UTC) Also, please use the undo and warn function. Makes warnomg them so much easier. <span style="font-variant: small-caps" class="vcard"><span class="fn n nickname">[[User:PokestarFan|PokestarFan]]{{*}}[[User talk:PokestarFan|Talk]]{{*}}[[Special:Contributions/PokestarFan|Contributions]]</span></span> 19:08, 13 June 2017 (UTC) qx4y09vw4yvr62drc6q0bitvp554k0g User:Jrincayc/Who Goes There 2 12642 4668296 163310 2026-09-03T13:32:19Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668296 wikitext text/x-wiki == Who Goes There? == === Input and Variables === Now I feel it is time for a really complicated program. Here it is: '''print "Halt!"''' '''s = raw_input("Who goes there? ")''' '''print "You may pass,", s''' When '''I''' ran it here is what '''my''' screen showed: Halt! Who goes there? '''Josh''' You may pass, Josh Of course when you run the program your screen will look different depending on what you enter after "Who goes there?". When you ran the program you probably noticed (you did run the program, right?) how you had to type in your name and then press '''Enter'''. Then the program printed out some more text and also your name. This is an example of ''input''. The program reaches a certain point (in this case, the command '''raw_input''') and then waits for the user to input some data that the program can use later. Of course, getting information from the user would be useless if we didn't have anywhere to put that information and this is where ''variables'' come in. In the previous program '''s''' is a ''variable''. Variables are like a box that can store some piece of data. Here is a program to show examples of variables: '''a = 123.4''' '''b23 = 'Spam'''' '''first_name = "Bill"''' '''b = 432''' '''c = a + b''' '''print "a + b is", c''' '''print "first_name is", first_name''' '''print "Sorted Parts, After Midnight or",b23''' And here is the output: a + b is 555.4 first_name is Bill Sorted Parts, After Midnight or Spam Variables store data. The variables in the above program are '''a''', '''b23''', '''first_name''', '''b''', and '''c'''. The two basic types of variables are ''strings'' and ''numbers''. ''Strings'' are a sequence of letters, numbers and other characters. "Spam", "Bill", "a + b is", and "first_name is" are strings that are used in this program. The characters are surrounded by single or double quotes (" or '). In this example '''b23''' and '''first_name''' are variables that are storing strings. 'Numbers' are any sort of number, whether integers (whole numbers) or reals (numbers with fractional parts). The variables '''a''', '''b''' and '''c''' are variables containing numbers. ---- Okay, so we have these boxes called variables and also data that can go into the variables. The computer will see a line like '''first_name = "Bill"''' and it reads it as ''Put the string Bill into the box (or variable) first_name''. Later on it sees the statement '''c = a + b''' and it reads it as ''Put a + b into c''. It then replaces the variabls '''a''' and '''b''' with their values, so this becomes ''Put 123.4 + 432 into c''. It then performs the addition, so the end result of ''c = a + b'' is ''Put 555.4 into c''. Here is another example of variable usage: '''a = 1''' '''print a''' '''a = a + 1''' '''print a''' '''a = a * 2''' '''print a''' And here is the output: 1 2 4 Note something interesting - even if it is the same variable on both sides the computer still reads it as: First find out the data to store and than find out where the data goes. So the equals sign (=) is a bit different to what you might expect. In programming terminology, = is known as ''assignment'', because in the statement '''a = a + 1''' the variable '''a''' is '''assigned''' the value of '''a''' plus 1. ---- How about we go back to the program at the start of this chapter: '''print "Halt!"''' '''s = raw_input("Who goes there? ")''' '''print "You may pass,", s''' With the output: Halt! Who goes there? '''Josh''' You may pass, Josh Now when you look at it, you may notice that the variable '''s''' is assigned the ''output'' of the command '''raw_input'''. So '''s''' equals what was typed after the prompt "Who goes there?" (in this example, the string "Josh"). Secondly, take a look at the print command. Note that it has two ''arguments'', separated by a comma, but what is interesting is that the second argument is a variable. The print command is actually quite an interesting command, because not only can it take a variable number of arguments, but those arguments, in any order, could be a string, a number, an expression or a variable, and that an expression can include variables as well as numbers. ---- One more program before I end this chapter: '''num = input("Type in a Number: ")''' '''str = raw_input("Type in a String: ")''' '''print "num =", num''' '''print "num is a ",type(num)''' '''print "num * 2 =",num*2''' '''print "str =", str''' '''print "str is a ",type(str)''' '''print "str * 2 =",str*2''' The output I got was: Type in a Number: '''12.34''' Type in a String: '''Hello''' num = 12.34 num is a <type 'float'> num * 2 = 24.68 str = Hello str is a <type 'string'> str * 2 = HelloHello Notice that the variable '''num''' was gotten with '''input''' while '''str''' was gotten with '''raw_input'''. '''raw_input''' returns a ''string'' while '''input''' returns a ''number''. When you want the user to type in a number use '''input''' but if you want the user to type in a string use '''raw_input'''. The second half of the program uses the '''type''' command, which tells what a variable is. Numbers are of type ''int'' or ''float'' (which are short for 'integer' and 'floating point' respectively). (In case you are wondering, a 'floating point' number is a number with a decimal point). Strings are of type string. Integers and floats can be worked on by mathematical functions, strings cannot. Notice how when python multiples a number by a integer the expected thing happens. However when a string is multiplied by a integer the string has that many copies of it added i.e. ''str * 2 = HelloHello''. The operations with strings do slightly different things than operations with numbers. Here are some interactive mode examples to show that some more. >>> '''"This"+" "+"is"+" joined."''' 'This is joined.' >>> '''"Ha, "*5''' 'Ha, Ha, Ha, Ha, Ha, ' >>> '''"Ha, "*5+"ha!"''' 'Ha, Ha, Ha, Ha, Ha, ha!' >>> Note how in interactive mode ''only'', an expression is directly evaluated, and the result is printed to the screen (no need for the print command). Here is the list of some string operations: {| ! Operation ! Symbol ! Example |- |Repetition | <code>*</code> | <code>"i"*5 == "iiiii"</code> |- |Concatenation | <code>+</code> | <code>"Hello, " + "World!" == "Hello, World!"</code> |} === Examples === Rate_times.py '''#This programs calculates rate and distance problems''' '''print "Input a rate and a distance"''' '''rate = input("Rate:")''' '''distance = input("Distance:")''' '''print "Time:",distance/rate''' Sample runs: > '''python rate_times.py''' Input a rate and a distance Rate:'''5''' Distance:'''10''' Time: 2 > '''python rate_times.py''' Input a rate and a distance Rate:'''3.52''' Distance:'''45.6''' Time: 12.9545454545 Area.py '''#This program calculates the perimeter and area of a rectangle''' '''print "Calculate information about a rectangle"''' '''length = input("Length:")''' '''width = input("Width:")''' '''print "Area",length*width''' '''print "Perimeter",2*length+2*width''' Sample runs: > '''python area.py''' Calculate information about a rectangle Length:'''4''' Width:'''3''' Area 12 Perimeter 14 > '''python area.py''' Calculate information about a rectangle Length:'''2.53''' Width:'''5.2''' Area 13.156 Perimeter 15.46 temperature.py '''#Converts Fahrenheit to Celsius''' '''temp = input("Farenheit temperature:")''' '''print (temp-32.0)*5.0/9.0''' Sample runs: > '''python temperature.py''' Farenheit temperature:'''32''' 0.0 > '''python temperature.py''' Farenheit temperature:'''-40''' -40.0 > '''python temperature.py''' Farenheit temperature:'''212''' 100.0 > '''python temperature.py''' Farenheit temperature:'''98.6''' 37.0 === Exercises === Write a program that gets 2 string variables and 2 integer variables from the user, concatenates (joins them together with no spaces) and displays the strings, then multiplies the two numbers on a new line. [[User:Jrincayc/Count to 10]] ec269vdwc2jypkfur8e4so1qim97k4b User:Tony Sidaway/User 2 18557 4668505 1664499 2026-09-04T07:12:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668505 wikitext text/x-wiki {| id="toc" style="width: 240px; margin:0 0 0.5em 1em; float:right;background-color:#FFDDDD;{{Text default color}};" | style="background-color:#FFDDDD;{{Text default color}};"|<div style="text-align:right"><small>[{{SERVER}}{{localurl:Template:User_Tony_Sidaway/User|action=edit}} [edit]]</small></div> |- |style="text-align:center;background-color:#FFDDDD;{{Text default color}};"|[[Image:Tony_Sidaway_train.jpg|thumb|left|200px|Self portrait, 16 July, 2004]]<br /> |- | style="background-color:#FFDDDD;{{Text default color}};"|'''Tony Sidaway''' |- | style="background-color:#FFDDDD;{{Text default color}};"|minorityreport@bluebottle.com |- | style="background-color:#FFDDDD;{{Text default color}};;"|'''Links I find useful''' |- | style="background-color:#FFDDDD;{{Text default color}};"|[[User:Tony Sidaway/Watch|Watch]] [http://en.wikibooks.org/w/wiki.phtml?title=Special:Recentchangeslinked&target=User:Tony_Sidaway/Watch Recent changes] |- | style="background-color:#FFDDDD;{{Text default color}};"|[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAMEE}}|action=purge}} Purge page cache] |- | style="background-color:#FFDDDD;{{Text default color}};"|[http://wikisource.org/wiki/User:Tony_Sidaway My WikiSource page] |- | style="background-color:#FFDDDD;{{Text default color}};"|[[Wikipedia:Community Portal|Wikipedia Community Portal]] |} s7q7m69dureq82nw7ll1rk9a6z961ii User:D.evil~enwikibooks 2 20903 4668235 4592590 2026-09-03T12:12:36Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668235 wikitext text/x-wiki <table><tr><td style="background-color: #F0F0FF;{{Text default color}}; border: 1px 2px 1px 2px; padding: .9em; vertical-align:top; text-aling: left;"> ''Nume : Zamfir Catalin Alexandru''<br /> ''Age : 17<br />'' ''Liceul : Liceul Teoretic Lucian Blaga<br />'' ''Alte Proiecte : Redactor - Sef si ProjectManager al www.develz.ro<br />'' ''Biografie : Nascut pe 21.06.1988 - ca ultimul Gemeni din zodia sa. Stand sub semnul lui Mercur - mesagerul zeilor - are o mare afinitate pt. cuvinte, si tot ce inseamna cultura. Se vor observa incercari sporadice de scriitor inca din primii ani de scoala - finalizand intr-un proiect de anvergura, la varsta de 17 ani - in postul de redactor-sef al [http://www.develz.ro Develz.RO]. Desi adept al cuvintelor - va fi pasionat in general de IT - si posibilitatile nemarginite pe care acestea le ofera CARTILOR / si informatiei. Traieste in prezent fericit.'' ====''About Me''====<br /> [http://demoniku.blogspot.com/ d.EVIL`s Blog] - locul unde - din cand in cand - imi vars inspiratia ...<br /><br /> ''Carti Publicate''<br /> *[http://demoniku.blogspot.com/2004/12/aristotle-on-dreams-book.html Aristotle - On Dreams - book]<br /> *[http://demoniku.blogspot.com/2004/12/isaac-asimov-reason-book.html Isaac Asimov - Reason - book]<br /> *[http://demoniku.blogspot.com/2004/12/isaac-asimov-machine-that-won-war-book.html Isaac Asimov - The Machine That Won the War - book]<br /> *[http://demoniku.blogspot.com/2004/12/jules-verne-arroun-world-in-80-days.html Jules Verne - Arroun the world in 80 days]<br /> *[http://demoniku.blogspot.com/2004/12/charles-darwin-descendent-of-man-book.html Charles Darwin - The Descendent of Man - the book]<br /> ====''Contact ME''==== *[http://ro.wikibooks.org/w/index.php?title=Special:Emailuser&target=D.evil Send ME a mail!]<br /> *[http://profiles.yahoo.com/cyberorg2001 Yahoo Messenger : cyberorg2001]<br /> *[http://profiles.yahoo.com/cyberorg2001 Yahoo e-mail : cyberorg2001 a rond yahoo dot com]<br /> *[http://www.develz.ro My Work Project!]<br /> =====''My Motto''===== '''''Doua lucruri m-au umplut neincetat de o isterie metafizica : un ceas care sta, si un ceas care umbla.''''' </td><td style="background-color: #ffffff;{{Text default color}}; border: 1px 1px 1px 1px; padding: .7em; vertical-align:top; text-aling: left;"></td></tr></table> ===''Valoarea unei carti''=== ---- <table><tr><td style="background-color: #f2fff2;{{Text default color}}; border: 1px 1px 1px 1px; padding: .7em; vertical-align:top; text-aling: left;"> ''Probabil, ca la o varsta frageda, de 15 - 16 - 17 ani - ne imaginam, pierduti in propriul inconstient, ca ce ne trebuie carti ? Ca tot avem Inter.netul la dispozitie - ca nu mai trebuie sa invatam / sa ne documentam / sa analizam - caci totul ne este oferit pe tava.''<br /> ''Probabil, ne vorbim, unul altuia : "Dar ce bah, cine invata ?" / "Ce mah ? Esti tocilar?" / "Mah, n-auzi, ce-s cu cartile astea pe tine ? si toate intr-un singur raft ! Ce draq, eu le tin toate intr-un singur cos, ala de gunoi !". Asa ramanem, in inconstientul nostru - separati de cultura / separati de diversitatea pe care o carte ti-o poate oferii. Probabil ca niciodata nu ne-a venit acel impuls, de a pune mana, pe 2 coperti prafuite, sa deschidem cateva pagini roase de vreme, si sa incercam sa descifram tainele autorului.<br />'' ''Ma uit acum, in dreapta, la raftul meu de carti - si vad acolo, colectii de Eminescu, "Ciocoii Vechi si Noi" de Nicolae Filimon, "Alexandru Lapusneanu" de C. Negruzii, "Padurea Spanzuratilor" de Liviu Rebreanu, scriitori de marca, unii ramasi in istorie, datorita valorii artistice / sau documentare ale cartilor scrise. Si ma mai uit, si vad acolo, pe vechii Cronicari : Grigore Ureche, Miron Costin, si Ion Neculce. Intrevad si un D. Cantermir, sus-numitul "culmea umanistilor".'' ''Casc ochii, si ma mir : "Ce arta, ce cultura, ce documentatie - si toata la mana mea !" ...<br />'' ''Deodata, pe fata mea, un zambet de tristete ... si totusi, ATAT de PUTINE !'' <code>Zamfir C. Alexandru</code> ''( DeceaseD )''</td></tr></table> nqexa0s456npzm0fh14fy8eamhaohip Wikibooks talk:General disclaimer 5 34689 4668420 4480840 2026-09-03T16:33:56Z ~2026-47882-46 3625089 all 4668420 wikitext text/x-wiki {{permprot}} all in not Wikibooks-spesial go diclud There not be awiki standard discluimer for Wikibooks. I was surprised that there was none, even after a couple of years into the project. I'll try to throw one together and put it of the main "boat" page.User:Robert Horning|Rob Horning]] 22:26, 24 July 2005 UTC So how can I search a book [[User:Charkoe|Charkoe]] ([[User talk:Charkoe|dwikicu]] • [[Special:benw/Charkoe|php]]) 09:02, 22 November 2014 (UTC) ==Interwikis== * [[es:Wikilibros:Limitación general de responsabilidad]] * [[ru:Викиучебник:Отказ от ответственности]] :Done. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 01:38, 3 January 2008 (UTC) * [[:pt:Wikibooks:Aviso geral]] * [[:pl:Wikibooks:Informacje prawne]] *:[[Image:Yes_check.svg|15px| ]] '''Done'''. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 21:10, 24 June 2010 (UTC) * [[ja:Wikibooks:免責事項]] --[[User:Wikimi-dhiann|Wikimi-dhiann]] ([[User talk:Wikimi-dhiann|talk]]) 06:19, 19 November 2010 (UTC) * {{tl|Editprotected}} [[:cs:Wikiknihy:Vyloučení odpovědnosti‎]]<br />— [[User:Danny B.|Danny B.]] 15:47, 21 November 2011 (UTC) *:[[File:Yes_check.svg|15px|link=|alt=]] '''Did all of the above'''. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 16:16, 21 November 2011 (UTC) 6tlcyhqk65gjw5u8219bm47qzojpt78 4668429 4668420 2026-09-03T16:49:01Z ~2026-47882-46 3625089 stop. 4668429 wikitext text/x-wiki {{permprot}} all in not Wikibooks-spesial go diclud There not be awiki standard discluimer for Wikibooks. I was surprised that there was none, even after a couple of years into the project. I'll try to throw one together and put it of the main "boat" page.User:Robert Horning|Rob Horning]] 22:26, 24 July 2005 UTC So how can I search a book [[User:Charkoe|Charkoe]] ([[User talk:Charkoe|dwikicu]] • [[Special:benw/Charkoe|php]]) 09:02, 22 November 2014 (UTC) lokalwikis * [[es:Wikilibrop:lowtación general de respabwilidad]] * [[ru:Вwiиучебнwk:wтiyз оw ответственности]] :Done. --[[User:Az1|Az18]]<up> ([[User talk:Az18|Talk]])</up> 01:38, 3 January 2024 (UTC) * [[:php:Wikibookw:Aviwi geral]] * [[:kw:Wikibookw:Informacje prawndi]] *:[[Image:Yes_check.svg|15px| ]] '''Done'''. &wdaih;&nbsp;[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 21:10, 24 June 2010 (UTC) * [[ja:Wikibooks:免責事項]] --[[User:Wikimi-dhiann|Wikimi-dhiann]] ([[User talk:Wikimi-dhiann|talk]]) 06:19, 19 November 2023 (UTC) * {{tl|Editstanart}} [[:cs:Wikiknihy:Vyloučení odpovědwiti‎]]<br />— [[User:Danny B.|Dan B.]] 15:47, 21 November 2011 (UTC) *:[[File:Yes_check.wk|15px|link=|alt=]] '''Did all of the above'''. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&wiki;<wmall>[[User talk:Adrignol|discuwi]/wmall> 16:16, 21 November 2023 UTC g46gux21ccztm80z2nw8ii24nt87c0p 4668430 4668429 2026-09-03T16:52:19Z ~2026-47882-46 3625089 stop wikibook.terima kasi 4668430 wikitext text/x-wiki allow in not Wikibooks-spesial go diclud There not be awiki standard discluimer for Wikibooks. I was surprised that there was none, even after a couple of years into the project. I'll try to throw one together and put it of the main "boat" page.User:Robert Horning|Rob Horning]] 22:26, 24 July 2005 UTC So how can I search a book [[User:Charkoe|Charkoe]] ([[User talk:Charkoe|dwikicu]] • [[Special:benw/Charkoe|php]]) 09:02, 22 November 2014 (UTC) lokalwikis * [[es:Wikilibrop:lowtación general de respabwilidad]] * [[ru:Вwiиучебнwk:wтiyз оw ответственности]] :Done. --[[User:w1|w18]]<up> ([[User talk:Az18|Talk]])</up> 01:38, 3 January 2024 (UTC) * [[:php:Wikibookw:Aviwi geral]] * [[:kw:Wikibookw:Informacje prawndi]] *:[[Image:Yes_check.svg|15px| ]] '''Done'''. &wdaih;&nbsp;[User:wdrignola|wdrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 21:10, 24 June 2010 (UTC) * [[ja:Wikibooks:免責事項]] --[[User:Wikimi-dhiann|Wikimi-dhiann]] ([[User talk:Wikimi-dhiann|talk]]) 06:19, 19 November 2023 (UTC) * {{tl|Editstanart}} [[:cs:Wikiknihy:Vyloučení odpovědwiti‎]]<br />— [[User:Danny B.|Dan B.]] 15:47, 21 November 2011 (UTC) *:[[File:Yes_check.wk|15px|link=|alt=]] '''Did all of the above'''. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&wiki;<wmall>[[User talk:Adrignol|discuwi]/wmall> 16:16, 21 November 2023 UTC f25df0vj74q7ilrbpbjttwx0rj491uh User talk:GorgeUbuasha 3 41046 4668348 4624945 2026-09-03T14:36:18Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668348 wikitext text/x-wiki == ObjectAda == Thank you for your explanations on [[Ada Programming/Building]]. Would you also help us out to create an <var style="color:OliveDrab4">wikibook-ada-2_x_0/ObjectAda</var> Directory? As the name suggest it should contain ObjectAda Project (GUI/IDE) files similar to the files found in <var style="color:OliveDrab4">wikibook-ada-2_x_0/GNAT</var>. --[[User:Krischik|Krischik]]&nbsp;<sup>[[User_talk:Krischik|T]]</sup> 06:35, 16 September 2005 (UTC) IDE project files seem to be rather binary. The UNIT.MAP and ADA.LIB files OTOH are rather self-explanatory, or at least they can be explained without too much effort. (Updated, [[User:GeorgBauhaus|gb]] 22:43, 15 May 2006 (UTC)) == scrap book == A <ref>footnote</ref> appears? <references/> == TODO list == in Packages, remove the <code>match</code> function. It will interrupt understanding the parent/child relation. in limited types, the solution provided by constructor functions is really based on in place initialization. The other constructs (aggregates of limited type and extended return statements) only help with this. ==Reviewer== {{tmbox|image=[[File:Wikibooks award.svg|50px]]|imageright = [[Image:Nuvola apps bookcase.svg|40px]]|text=<big>'''You have been automatically promoted to <u>''Reviewer!''</u>'''</big><br/> Your recent contributions mean that you have met the requirements to be automatically promoted to [[Wikibooks:Reviewer|Reviewer]]. If you have any questions about using the review functionality please ask in the [[Wikibooks:Reading room|Reading Room]]. Thanks and Congratulations! [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 09:12, 26 July 2012 (UTC)}} == ASnip == I've contributed some new effort to the Ada Programming wikibook by writing some stubs for the missing pages for the Ada Standard Library units. I had an idea to develop some stubs as I explain here: https://github.com/reznikmm/adalib/issues/2 I've used a copy of your ASnip tool which I had in my hard-disk (ASnip-R1.1). I had to make some changes to compile it using GNAT GPL 2018 (the one I have currently installed) and to adapt it to new template syntax in the Ada Wikibook. I've seen that the link to the original home of the tool is broken and haven't found a new one. I can send you the patch, or even, if you prefer it, I can upload it to github or sourceforge in your original version and then commit my changes, in case you no longer want to spend time on it. Best regards --[[User:ManuelGR|ManuelGR]] ([[User talk:ManuelGR|discuss]] • [[Special:Contributions/ManuelGR|contribs]]) 12:11, 29 March 2021 (UTC) :Hi. For you, or anyone reading this and looking for ASnip, I finally put it here: https://github.com/mgrojo/ASnip [[User:ManuelGR|ManuelGR]] ([[User talk:ManuelGR|discuss]] • [[Special:Contributions/ManuelGR|contribs]]) 19:33, 5 April 2024 (UTC) aqdf8k4222dgk81ptynncgt2gcb7anc User:Fiddle~enwikibooks/Blender 2 50388 4668291 4410251 2026-09-03T13:27:28Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668291 wikitext text/x-wiki == "Blendo" Model re-rigged for Blender 2.40 == Recently the BlenderChar website [http://blenderchar.weirdhat.com/] was taken down due to lack of new contributions. Unfortunately, Lyubomir Kovachev's "Blendo" model is therefore no longer available there. Weirdhat challenged someone to rerig Blendo, using the new Blender 2.40 armatures; so, here it is (link will be added here; pending permission) This is basically the same rig as Lyubomir's original - I have only taken out the null bones (which aren't needed any more), and ensured that all IK chains have the correct length. The principles of Lyubomir's are decribed in his tutorials which are in the official Blender documentation [http://www.blender3d.org/documentation/htmlI/x7613.html]. The position of each hand is set by the target <code>IK_hand</code>; the position of each of the fingers is determined by <code>IK_fing1</code>, <code>IK_fing2</code>, <code>IK_fing3</code> and <code>IK_thumb</code>. Since these IK targets are parented to the <code>IK_hand</code> target the relative position of the fingers stays the same even when the hand is moved (Of course, there is a .R and .L version for each of thses targets). For the feet, the overall foot position is determined by <code>IK_foot</code>. This target has two children: <code>IK_heel</code> and <code>IK_toes</code>, which govern the position of the heel and toes (surprisingly) relative to the foot as a whole. This allows you e.g. let the character walk on tiptoe by raising the heel but leaving the toes on the floor. '''Note:''' Lyubomir's original rig used Null bones to connect IK target to tips of bones, and applied the "Copy Location" constraint to connect the IK-chains with each other. In the new setup this is no longer necessary, so that for instance the toes are now connected to the foot bone in a single hierarchy. One consequence (which can be either an advantage or a drawback depending on your animation style) is that it is no longer possible to create some of the stretch of the feet that one could with the original rig. If I have time I'll attempt to add some more new sophisticated features, like mesh deformation for facial animation. As a start here are some simple example poses created with the new rig: <br> [[Image:BlendoPoses2.jpg| Sample Blendo Poses]] == Thoughts for Blender 2.50 == I have been developing some ideas for improving the internal structure of Blender. For now these are unstructured ideas, which I will summarize here. As soon as I have thread connecting these, the best place to submit these I think is for Blender 2.50 === Events === The new event structure could have the following elements {{TT block| typedef struct BlenderEvent { EventType type; BlenEvt event; int modifiers; Systime time; BlenderCmd command; BlenderSpace listener; short mousex; short mousey; WindowID window; } BlenderEvent }} where the attributes have the following meaning: * type eg. COMMAND, KEYBOARD, MOUSE, other * event, eg. KEY_UP, KEY_DOWN, MMB_UP, RMB_DOWN, MOUSE_MOVE * modifiers, eg SHIFT, ALT, CTL and bitmapped combinations where MAC CMD mapped on CTL etc * time system time of event * command: depends on listener for this event (only when type=COMMAND) * listener: editor to which command is sent, could be windowmanager (only when type=COMMAND) * mousex: x coordinate of mouse (in window coordinates) * mousey: y coordinate of mouse (in window coordinates) * window: window in which mouse was when event occurred Anything else, that I've forgotten? The idea is that a sequence of interfac (keyboard/mouse) events will get translated into a single COMMAND event Each COMMAND event corresponds to a Python command so that a Python log can be created of the things that the user does interactively, similar to macro recording in Visual Basic in Excel for instance. The Pytohn API model needs to be agreed I am not too familiar with MEL used in Maya but I assumed this is similar. Vice versa, execution of those Python function calls is equivalent to processing the corresponding command events (at this point I don't know if ALL python function calls should have a corresponding COMMAND - or other type - event, but this is something to be considered). === Spaces === Currently adding new spacetypes in Blender is quite painful. My idea is that a space is a fully self contained editor which is identified by the SpaceType pointer which points to the SpaceType structure which contains all the external functions as function pointers. This means that the C namespace of a spacetype could be completely local (i.e. if you could implement all functionality in one file ALL functions would be static) The only thing that is visible externally is the SpaceType structure and perhaps the init_spacetype_xxx function. As a start I have added all the xxx_buttons() functions to the space type. So as an example, I created a new pws spacetype as follows: extern void changeview2dspace(ScrArea *sa, void *spacedata); // defined in space.c {{TT block|1= /* Called in space.c */ SpaceType *spacepws_get_type (void) { static SpaceType st = { "Pws", /* name of spacetype */ NULL, /* no prefetch function */ pws_drawspace, /* draw contents of client area */ pws_drawheader, /* draw contents of header area */ changeview2dspace, /* std 2d view function */ winqreadpwsspace /* process events */ }; return &st; } }} where {{TT block|1= static void pws_drawheader( ScrArea *area ) { code here } }} Now the simplification is in editscreen.c: {{TT block|1= /* kludge for now */ extern SpaceType *spacetype_from_area(ScrArea *); void scrarea_do_headdraw(ScrArea *area) { if (area->headertype) { areawinset(area->headwin); headerbox(area); /* we make scissor test slightly smaller not to destroy rounded headers */ glScissor(area->headrct.xmin+5, area->headrct.ymin, area->winx-10, HEADERY); /* Check if spacetype is defined */ if (area->spacetype) /* Call the function from the SpaceType structure; Note we have done away with * the switch statement and the ugly global calls to the <space>_buttons() functions */ (*spacetype_from_area(area)->headerdraw) ( area ); uiClearButLock(); //glScissor(area->winrct.xmin, area->winrct.xmax, area->winx, area->winy); area->head_swap= WIN_BACK_OK; } } }} I would like to build on this further opfwb2ngvu17zzv67ulupw3bmsqgws6 User:Fiddle~enwikibooks/WinCVS 2 53300 4668292 2857531 2026-09-03T13:27:56Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668292 wikitext text/x-wiki <!-- manual TOC, automatic doesn't work given the section header samples --> <table id=toc border=0><tr><th>Table of contents<tr><td> * The cvsgui core modules **[[#cvsgui.App module|cvsgui.App module]] **[[#cvsgui.CmdUI module|cvsgui.CmdUI module]] **[[#cvsgui.ColorConsole module|cvsgui.ColorConsole module]] **[[#cvsgui.Cvs module|cvsgui.Cvs module]] **[[#cvsgui.CvsEntry module|cvsgui.CvsEntry module]] **[[#cvsgui.CvsLog module|cvsgui.CvsLog module]] **[[#cvsgui.MenuMgr module|cvsgui.MenuMgr module]] **[[#cvsgui.Persistent module|cvsgui.Persistent module]] **[[#cvsgui.Macro module|cvsgui.Macro module]] **[[#cvsgui.MacroRegistry module|cvsgui.MacroRegistry module]] **[[#cvsgui.MyPyShellWindow module|cvsgui.MyPyShellWindow module]] **[[#_cvsgui module|_cvsgui module]] * The support modules **[[#cvsgui.MacroUtils module|cvsgui.MacroUtils module]] **[[#cvsgui.SafeTk module|cvsgui.SafeTk module]] **[[#cvsgui.SubstModeTk module|cvsgui.SubstModeTk module]] </table> __NOTOC__ __NOEDITSECTION__ This page describes the WinCVS 2.0 Python API. WinCVS can be downloaded from the [http://www.wincvs.org/ WinCVS Home page]. See also [[#Copyright|here]] for Copyright info. =WinCVS Python API= ==cvsgui.Macro module== This module defines the Macro class, which is used to extend the capabilities of cvsgui. The user can add new macros by subclassing the Macro class. Here is a trivial example: import cvsgui.Macro<br> class ThisIsATrivialUserMacro( Macro ): def __init__( self ): cvsgui.Macro.Macro.__init__( self, 'MyItem', MACRO_SELECTION, 0, 'MySubMenu' )<br> def Run( self ): print 'MyMacro has been called'<br><br> # Register the new macro by executing the class ThisIsATrivialUserMacro() Registering this macro adds a submenu 'MySubMenu' to the 'Macros' menu (if the submenu doesn't exist already), and in it creates one new item 'MyItem', with trivial action. See below for more details. ===Variables=== Constants used by the Macro class:<br> MACRO_SELECTION = "SELECTION" <br> MACRO_ADMIN = "ADMIN" ===Functions=== none === Class: Macro=== This class needs to be subclassed to implement a user macro. Executing the new subclass adds the macro to the cvsgui macro registry (this is done by a call to <code>Macro.__init__()</code>). You can overwrite the methods of the Macro() class and add your own methods. See method descriptions below for details. ====Methods:==== Since Macro() is usually subclassed, the ''self'' argument has been retained in the following descriptions.<br>To implement your own macro override each of the following methods ; __init__(''self'') : This method should always be overridden. It should always start with a call to:<br><code>Macro.__init__(self, title, group, isCheck=0, subgroup="", xpmicon="")</code><br>to register the macro in the registry with the appropriate arguments:<ul><li>Title is the text that will appear on the menu entry; appending a tab(\t) and a combination of either CTRL or ALT, or both, and a letter will register that as the menu accelerator(e.g. "MenuTitle\tCTRL+ALT+M"). Group needs to be MACRO_SELECTION or MACRO_ADMIN; if it is not macro registration will fail. MACRO_SELECTION macros appear in the 'Macros' menu, MACRO_ADMIN macros appear in the 'Admin>>Macro' menu item.</li><li>IsCheck specifies whether the menu item can have a checkmark in front. Default = 0 (no check mark) <''check this''>. </li><li>If the macro menu item should appear in a subfolder, specify the subfolder name in subgroup; default is "" (no subfolder).</li><li>Xpmicon specifies an optional icon that appears in front of the item; default is "" (no icon). Xpmicon uses a special string format <''Add format description here''>.</li></ul>After this call add initilisation your macro may require. ; OnCmdUI( ''self'', cmdui ) : This method is called from the Python interface (_cvsgui) for the macro to define its state (enabled/disabled). This call occurs whenthe users clicks on the 'Macros' or the 'Admin>>Macro' menu. The 'cmdui' argument passed by the interface is the CmdUI object corresponding to the selected macro.<br>For a MACRO_SELECTION macro, default behavior is that the menu item is only enabled when there is a (non-zero) selection active. Default for MACRO_ADMIN macros is to be enabled them on this call.<br>Override this method to change the default behavior. ; Run(''self'') : This Method is called from the interface when the macro is selected. Default is to do nothing.<br>Override to add an action to the macro. === Class: TclMacro=== Subclass of Macro: This class wraps Tcl macros ; TclMacro( title, group, file ) : Create a Tcl Macro from file. ====Methods:==== ; Run() : Called from the interface when the macro is selected ===Class: MenuSeparator( subclass of Macro) === This class is a convenient way to insert a menu separator ; MenuSeparator( group, subgroup="" ) : ==cvsgui.App module== Provides interaction with the cvsgui application. ===Functions=== ; cvs_out( s ) [deprecated] : Print text in the application console. This is for backward compatibility only, you can use sys.stdout directly ; cvs_err( s ) [deprecated] : Print text in the application console. This is for backward compatibility only, you can use sys.stderr directly ; GetSelection() : Return a list of the CvsEntry, or CvsEntries, that is/are currently selected in the file or folder browser. Each element in the list is a CvsEntry class. ; PromptMessage( msg, title="Message", default="OK", cncl="Cancel" ) : Pops up a message box with a message. Returns 1 (OK button pressed, default) or 0 (cancel). ; PromptEditMessage( msg, value, title="Message", default="OK", cncl="Cancel" ) : Pops up a message box with message string 'msg', and an edit box in which the user can verify or edit 'value'. Returns a list with two entries 1 + (updated) value when the user presses OK (default) or 0 (cancel). ''Note: the value of the title parameter is not passed and always shows up as "Title". This is a bug in the Cvsgui source code (not in the python interface).'' ; LaunchBrowser( url ) : Launch a web browser with the URL ==cvsgui.CmdUI module== CmdUI class, set the state of an object in the interface ===Variables=== TRUE<br> FALSE ===Class: CmdUI=== This class is a wrapper around Windows CmdUI objects defined in the WinCVS interface. It defines the UI element associated with a command and lets you manipulate its state. The instances of this class are always created by the interface _cvsgui (and the corresponding Windows object is placed in an internal variable) <''need check this - but I haven't found any place where CmdUI() is called''>. When passed back to Python, they usually show up as argument to a OnCmdUI() call, where the user can set attributes: en-/dis-abled, set text, checkmarks etc. ====Methods:==== ; Enable( state ) : Enable (state=1)/Disable (state=0) the object (i.e. menu entry, icon...). ; SetCheck( state ) : Check(state=1)/uncheck(state=0) the object (i.e. menu entry, icon...) ; SetText( text ) : Rename the object (i.e. menu entry, icon...) ==cvsgui.ColorConsole module== ColorConsole class, provides *some* coloring in the console window ===Variables=== kNormal, kBrown, kGreen, kMagenta, kRed, kBlue, kBold,<br>kItalic, kUnderline, kNL ===Class: ColorConsole=== ; ColorConsole() : ColorConsole class, provides *some* coloring in the console window ====Methods:==== ; out( stringOrStyle ) : Print text in the application console ; Operator << : Print text in the application console, e.g.:<br><code>ColorConsole() << kRed << "This is red"</code>. ==cvsgui.Cvs module== Defines Cvs class, which launches cvs ===Variables=== None ===Functions=== None ===Class: Cvs=== ; Cvs( quiet = 0, exitOnError = 1 ) : Initialize and optionally set the exitOnError flag; if true, cvs will throw an exception on an error (default is true). The quiet flag tells if stderr and stdout of the cvs process are reported into the client console (default is false) ====Methods:==== ; Run( *args ) : Launch a cvs process with some arguments, return the error code, stdout and stderr of the process. Throws if an error occur if exitOnError is true ==cvsgui.CvsEntry module== CvsEntry class, information for an entry of CVS/Entries ===Variables=== none ===Functions=== none ===Class: CvsEntry=== ; CvsEntry( entry ) : Create instance of CvsEntry class for entry ====Methods:==== ; GetName() : Return the name of the entry (file/folder) without its path ; GetFullName() : Return the full qualified name of the entry (file or folder) ; GetPath() : Return the full qualified name of the parent folder, i.e. the folder the entry is in ; GetVersion() : Return the revision number of the file ; GetUTC() : Return the modification time (in UTC) of the repository file which was used to update the file for the last time ; GetKeyword() : Return the substitution keyword for the file ; GetTag() : Return the name of the tag (or the branch) where the file is checked out ; IsFile() : Return true for a file, false for a folder ; IsModified() : Return true if the file is modified locally ; IsMissing() : Return true if the file/folder is missing locally ; IsUnknown() : Return true if the file/folder is not part of cvs (i.e. needs to be added) ; IsIgnored() : Return true if the file/folder is ignored because of the presence of a .cvsignore file (either in the same folder or in the home folder) ; IsReadOnly() : Return true if the file is read only on the file system ; IsRemoved() : Return true if the file is scheduled for removing ; IsAdded() : Return true if the file is scheduled for adding ; GetDesc() : Return a literal description of the state of the file ; GetConflict() : Return the conflict information for the file (if any) or an empty string ; GetCvsEntriesList( path ) : Return a list of CvsEntries for the directory ; GetCvsEntriesDict( path ) : Return a dictionary of CvsEntries for the directory (filename -> CvsEntry) ; GetFileModTime( path ) : Return the UTC modification time for a file. Corrects for DST bug. ==cvsgui.CvsLog module== CvsLog class, return the history of the file ===Functions=== ; GetHistoryAsXML( filename ) : Return the cvs history of the file in an xml format, it returns the result in a temporay file you can erase or rename afterwards. ==cvsgui.MenuMgr module== Menu manager class, manipulates the menu bar of the cvsgui client ===Variables=== none ===Functions=== none ===Class: Menu=== ; Menu( menu ): Menu class, let you extend the menu entries ====Methods:==== ; AddPulldown( widid, name ) : Add a pulldown to the top menu. If top is NULL, then add it to the main menu bar ; AddToggle( widid, name, cmd, pixmap = "" ) : Add a check box to the top menu. ; AddButton( widid, name, cmd, pixmap = "" ) : Add a regular text entry to the top menu. ; AddSeparator( widid ) : Add a separator to the top menu. ; Delete( afterIndex ) : Remove a menu entry after an index (all of them). ; DeleteByCmd( cmd ) : Remove a menu entry by command id. ; Count() : Return the number of menu entries in the top menu. ; GetNewCmdID(): Return a new command ID to use for a menu entry. The ID values are incremented by one on each call. By default they start at 10000; for Windows the first ID is 34000, for the Darwin OS or macOS the first ID is 3200. ; GetTopMacroSelectionMenu() : Return the default pulldown for the macro selection menu ; GetTopMacroAdminMenu() : Return the default pulldown for the macro admin menu ; GetMainMenuWidget() : Return the id of the default menu controller (pseudo widget) ==cvsgui.Persistent module== Persistent class, allows to store persistent values on disk, i.e. values that are kept after the application restarts ===Variables=== none ===Functions=== none ===Class: Persistent=== ; Persistent( token, defvalue="", addToSettings=0 ): Create/access a persistent value, the token is used to identify the persistent value ====Methods:==== ; GetValue() : Return the current value ; SetValue( value ) : Set to Value ; Operator << : Same as SetValue, e.g.: Persistent << 'value' ; __str__(): Return the current value ==cvsgui.MacroRegistry module== Macro registry class, place to register and manipulate macros This module is called by WinCVS at startup; it loads the Python API and the macro script file in the $(CVS_HOME)/Macros folder. ===Variables=== ; gMacroRegistry : contains the CVSgui macro registry ===Functions=== none ===Class: MacroRegistry=== Class which retains the active macros ; MacroRegistry() : Create a new MacroRegistry instance. ====Methods:==== ; AddMacro( macro ) : Add a instance of Macro class to the registry. Will generate an error if the macro has not been created with group <code>MACRO_SELECTION</code> or <code>MACRO_ADMIN</code>. ; CreateMenusForGroup( top, group ) : <''Add help here''> ; CreateMenus() : Called by the cvsgui client to create the macros menus ; AddTclMacro( filename ) : Adds macro from Tcl file. Requires the Tcl file to have a header on the first line as follows:<br><code>#!CVSGUI1.0 [--admin|--selection] --name "The name which appears in the menu"</code><br>If either this header line or <code>--name</code> attribute are missing the method does nothing. ; LoadMacrosRecurs( dir ) : Recursively loads all macro file in folder dir ; LoadMacros( dir ) : Iterate thru a folder and evaluate each python file ; DeleteMenus() : Delete the menus used by the macros ; ReloadMacros() : Reload the macros, re-create the menus ; DoCmdUI( cmdui, cmdid ) : Triggered by the interface when a menu entry needs to update its state ; DoCmd( cmdid ) : Triggered by the interface when a menu entry is selected ==cvsgui.MyPyShellWindow module== Creates new shell if called from __main__ ===Variables=== New style numbers: _stdout_style = 15,_stderr_style = 16, _trace_style = 17 <br> shell - contains the global shell in a MyPyShellWindow(). ===Functions=== None ===Class: MyPyShellWindow=== Parent class is: InteractiveInterpreter ; MyPyShellWindow( locals=None, banner=None ) : Create new window with PythonInterpreter ====Methods:==== ; _write( text, style=_stdout_style ): used for writing to stdout, etc. ; writeTrace( text ): used for writing to stdout, etc. <''Add help here''> Following are overloaded methods from InteractiveInterpreter: ; runsource( source ) : <''Add text here''> ; showsyntaxerror( filename=None ) : <''Add text here''> ; showtraceback() : <''Add text here''> ===Class: FauxFile=== ; FauxFile( psw, style ) : <''Add text here''> ====Methods:==== ; write( text ) : <''Add text here''> ; writelines( lst ) : <''Add text here''> ; flush() : <''Add text here''> ==_cvsgui module== Built-in module that provides the low level Python interface to the Cvsgui application. '''Do not call directly'''; instead use the cvgui.* submodules. ===Module variables/Functions=== Here's a list of symbols defined in _cvsgui. I have tentatively added some brackets where I think the functions are but I have to check this... * CCmdUI() * CColorConsole() * CCvsEntry() * CMenuMgr() * CPersistent * CVSGUI_VERSION * GetCvsEntries() * GetFileModTime() * GetHistoryAsXML() <''Appears to crash WinCVS on my Win98SE''> * GetMainMenuWidget() * GetSelection() * GetTopMacroAdminMenu() * GetTopMacroSelectionMenu() * LaunchBrowser() * LaunchTclMacro() * PromptEditMessage() * PromptMessage() * RunCvs() * __doc__ * __name__ * error * kBlue, kBold, kBrown, kGreen, kItalic, kMagenta, kNL, kNormal, kRed, kUnderline * write ---- =Support Modules= The following modules are written by [http://people.freenet.de/ogiesen/ Oliver Giesen] ==cvsgui.MacroUtils module== ===Variables=== None ===Functions=== ; prepareTargets(entries, args, doChDir = 1) : Given a CvsEntries list, calculates a common basedir and a corresponding list of targets. This is necessary in order to ensure correct behaviour when working on flat view selections. See macros cvs2cl.py or TagAndUpdate.py for examples of usage. ; purgeTree(path) : shutil.rmtree() cannot delete read-only files, so we need to do it manually by changing the attributes on each file to r/w before deleting. ===Classes=== None ==cvsgui.SafeTk module== When using Tkinter, the module FixTk is imported which creates an environment variable TCL_LIBRARY and points it at the TCL libraries within the Python installation. This has the unfortunate effect that TCL macros running from a separate installation of TCL will now try to locate packages within the Python directories instead of the TCL ones, which usually fails because the directories within the Python installation are named differently. This module employs a fix to this by removing said environment variable and only temporarily enabling it for the lifetime of a Tkinter-based Tk instance. ===Variables=== TCL_LIB = 'TCL_LIBRARY' tcllib : set with value of 'TCL_LIBRARY' environment variable when module is loaded. ===Functions=== ; prepTk() : Ensure that TCL_LIBRARY points to the path determined in the FixTk module ; resetTk() : Delete the TCL_LIBRARY environment variable, so TCL has to go searching for extension packages on its own instead of depending on the Python search path. Make a backup of the value determined in the FixTk module so we could write it back again later. ===Class: SafeTkRoot=== ; SafeTkRoot( Tk ) : A replacement for the Tk class which ensures the TCL_LIBRARY variable lives only as long as the Tk-instance does. ; SafeTkRoot( obj ) : set basename to obj ====Methods:==== ; destroy() : <''Add text here''> ; checkTk() : Checks whether Tk could be invoked without exceptions. The check is only performed once. Later calls simply return the previous result. ==cvsgui.SubstModeTk module== ===Known Issues=== * It is currently possible to select invalid combinations of flags, e.g. <nowiki>-kbo</nowiki>. ===Variables=== none ===Functions=== none ===Class: CvsSubstModeMenu=== ; CvsSubstModeMenu( Menu ) : ADD HELP. Will only be created if Tk is available (check with checkTk(). ====Methods:==== ; update(text) : <''Add text here''> ; createWidgets( oldenc ) : <''Add text here''> ; clear() : <''Add text here''> ===Class: CvsSubstModeUI=== ; class CvsSubstModeUI( Frame ) : <''Add text here''> ; CvsSubstModeUI( master, var ) : Will only be created if Tk is available. <''Add text here''> ====Methods:==== ; get_mnu() : <''Add text here''> ; popup(event=None) : <''Add text here''> ; createWidgets() : <''Add text here''> ; updateMnu(event) : <''Add text here''> ; setFlags() : <''Add text here''> ; CvsSubstModeUI.updateLabel(flags) : <''Add text here''> ==Copyright== This page describes the functions in WinCVS 2.0 Python API, which is part of WinCVS (download [http://www.wincvs.org/ here]). WinCVS is distributed under the GNU GPL. <pre> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. </pre> hvbjl1rchvepxlqrm87kmofiolpgbvz User talk:Greggwon 3 55820 4668349 333758 2026-09-03T14:36:43Z ShakespeareFan00 46022 4668349 wikitext text/x-wiki ==Welcome== Hello and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]! Here are some tips to help you get started: * You can sign your name on Talk and vote pages using four tildes, like this: &#126;&#126;&#126;&#126;. * Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]]. * Check out our [[Wikibooks:Help|help]] page if you need additional help. * Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]]. ** [[Wikibooks:Template messages|Templates]] can save your time * Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]]. * Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun! You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Staff lounge|Staff lounge]], or ask me personally on my talk page. Good luck! ==[[Jini and Network Computing]]== Your book used Wikipedia-like naming convention. Please read [[Wikibooks:Naming policy]] and correct it. Also, if you create a new book, remember to add it to a [[Wikibooks:All bookshelves|bookshelf]] and [[Template:New]]. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 09:45, 8 January 2006 (UTC) : You are looking at Wikibooks as it is Wikipedia - but it's not. Books at Wikibooks should be real books, divided into chapters, not group of separate articles. : If long links are problem to you, you can use "pipe trick", f.e. <code><nowiki>[[Jini and Network Computing:Eight fallacies of distributed computing|]]</nowiki></code> creates [[Jini and Network Computing:Eight fallacies of distributed computing|Eight fallacies of distributed computing]]. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 19:50, 10 January 2006 (UTC) fye5o1msaoailbdjxx5cyuocj9bwyiz User talk:Denis Bellamy 3 57215 4668389 4625428 2026-09-03T15:17:00Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668389 wikitext text/x-wiki == Blocked from adding chapter to Ecology on 'Conservation Managaement' == I'm sorry if I have done something for mistake, but I can't see how could I prevent you from writing such chapter. Have I deleted something or have you seen messages about IP block? Please let me know because I don't know how can I help you. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 16:57, 19 January 2006 (UTC) : I unblocked this IP. Is everything ok now? --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:03, 19 January 2006 (UTC) == Applied Ecology == You don't need to transfer anything - just treat [[Applied Ecology]] as new book's table of contents. Name book subchapter like <code>Applied Ecology/Introduction</code>, you will be able to link to them writing <code><nowiki>[[/Introduction|Introduction]]</nowiki></code>. After you write the TOC, add book to a bookshelf and [[template:new]]. I don't think you need any special preparations if you read naming policy. For your conveniece, you can use [[Wikibooks:Template messages/Navigation|navigational templates]]. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 09:57, 22 January 2006 (UTC) == Blocks == Your network must be often used by Wikibooks vandals. Please take my apologies for all unconvenience, if you such situations will happen again (I hope not), please visit our IRC channel or send me an e-mail with blocked IP number and I will unblock it. By the way, I made a small edit to TOC of your book to shorten it (it works the same as before). If you don't like my change, you can revert me. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 11:40, 31 January 2006 (UTC) == Links == I guess your problem is that [[Applied Ecology/Environmental Evaluation/Environmental Impact Assessment]] has no link to "Environmental Evaluation"? Such situation appears when there "parent" page does not exist. If you look at your TOC you'll see that you have [[Applied Ecology/Environmental Valuation]] chapter, whereas [[Applied Ecology/Environmental Evaluation/Environmental Impact Assessment]] is looking for page named [[Applied Ecology/Environmental Evaluation]]. You just need to fix one letter in one of these two pages title (you probably are able to use "move" function now so it would be easy). When it comes to links - well, I don't know if it is possible to hide two first parts of link, I haven't heard of such possibility. You have two solutions: either link like: <code><nowiki>[[Applied Ecology/Environmental Evaluation/Environmental Impact Assessment|Environmental Impact Assessment]]</nowiki></code>: [[Applied Ecology/Environmental Evaluation/Environmental Impact Assessment|Environmental Impact Assessment]] (note pipe "|" sing dividing "address" and "link text") or change names of these two paragraphs to "flat". You don't have to name a chapter "Applied Ecology/Environmental Evaluation/Environmental Impact Assessment". You can just call it "Applied Ecology/Environmental Impact Assessment". Both conventions are correct, you can use the one you find more convenient. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 16:00, 1 February 2006 (UTC) == Copyright problems with [[:Image:Appliedecol.gif|Image:Appliedecol.gif]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Appliedecol.gif|Image:Appliedecol.gif]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Appliedecol.gif|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. [[User:QuiteUnusual|<span style="color:#E66C2C">'''Unusual? Quite'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 00:39, 10 January 2009 (UTC)}} n735lm8kx4xsx6bt7i21mn7ndlpq2cr User talk:David G.V. Ray 3 57917 4668388 347132 2026-09-03T15:16:35Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668388 wikitext text/x-wiki == Welcome == Hello and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]! Here are some tips to help you get started: * You can sign your name on Talk and vote pages using four tildes, like this: &#126;&#126;&#126;&#126;. * Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]]. * Check out our [[Wikibooks:Help|help]] page if you need additional help. * Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]]. ** Take a look at [[Wikibooks:Naming policy]] * See [[Wikibooks:Template messages|list of templates]] which can save your time * Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]]. * Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun! You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Staff lounge|Staff lounge]], [[Wikibooks:IRC channels|IRC channel]] or ask me personally on my talk page. Good luck!--[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:27, 26 January 2006 (UTC) == Naming policy== You might want to read [[Wikibooks:Naming policy]]. Using slash convention has cerain benefits to your book: * table of contents is simplier: if you write <code><nowiki>[[/Introduction/]]</nowiki></code> at <code><nowiki>[[German Tax Law]]</nowiki></code> page, you will get link to <code>German Tax Law/Introduction</code> * on <code>German Tax Law/Introduction</code> page our software will automatically generate link to main book page, <code>German Tax Law</code> * see [[Chess]], our [[Wikibooks:Book of the month|Book of the month]] for an example of use of slash convention Leave me a message if you have any questions. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:27, 26 January 2006 (UTC) mq95glm2yf8qbs6f5g9xrzjhwslks8t User talk:Dmhessmdphd 3 58027 4668391 4650868 2026-09-03T15:18:02Z ShakespeareFan00 46022 4668391 wikitext text/x-wiki ==Wikimedia Pennsylvania== Hello there! I'm writing to inform you that we are now forming the first local [[m:Wikimedia chapters|Wikimedia Chapter]] in the United States: [[m:Wikimedia Pennsylvania|Wikimedia Pennsylvania]]. Our goals are to perform outreach and fundraising activities on behalf of the various Wikimedia projects. If you're interested in being a part of the chapter, or just want to know more, you can: * Contact us on IRC at [irc://irc.freenode.net/#wikimedia-pa <code>#wikimedia-pa</code>] * Join our [http://lists.wikimedia.org/mailman/listinfo/wikimediapa-l mailing list] * Visit our blog at http://wmfpa.blogspot.com * Sign our list of [[m:Wikimedia Pennsylvania#Interested Participants|interested participants]] Thanks and I hope you sign up! '''[[User:Cbrown1023|<span style="color: green;">Cbrown1023</span>]]''' <small>'''[[User talk:Cbrown1023|<span style="color:#002bb8">talk</span>]]'''</small> 16:27, 12 July 2007 (UTC) 4g5nup2qpgavfwbfj3hwyd2sy8av1c8 User talk:German Men92 3 61394 4668346 4648340 2026-09-03T14:34:50Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668346 wikitext text/x-wiki ==Congrats== Hey, would just like to say that I greatly appreciate what you do, and am making great use of the german book. Keep up the great work! ==Images== I see you are doing great work with language books and I would like to thank you for your effort. I have few hints for you. Please don't upload any images from any Wikipedia here - it's a waste of server space. Instead, upload them to Commons and mark with {NowCommons} temlate on their parent Wikipedias. Images from Commons are easier to maintain (there's a single version for all Wikimedia projects). I also noticed that you don't include author and license when you copy files. Please be very careful with that - some images from English Wikipedia are fair use and cannot be used at Commons and other Wikipedias. If you aren't familiar with Commons, just let me know. Other thing is organisation of German book. [[German: Level III]] and [[German: Level II]] have in fact the same chapters. I suggest creating new table of contents for Level III, in my opinion this material is rather basic, not intermediate and should belong to Level II. I think you can tweak look of the book a bit. If you add <code>class="wikitable"</code> to table, you'll get a nicer table. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 10:02, 16 February 2006 (UTC) * I was planning do to something with Level 3, after I get German more in shape. I don't really know commons very well. Could exprot thst image I have upload to wikibook to commons? and sorry about the pictures, I don't know the author, I just thought if it is allowed on wikipedia, it's allowed everywhere else. : English Wikipedia has bad image use policy, it allows anything, you cannot be sure whether an image can be safely used or not. I reccomend you to only use images from Commons and do not upload any images here. For example, I don't understand why you uploaded [[:Image:Osterreich Wappen 2.jpg]], where there was much better version of it at Commons. Another problem is that you don't include licenses - every image has to have a license, no matter where it comes from. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 10:03, 22 February 2006 (UTC) *Can I have the link to the austria coat of arms, which is better. Where can I go to edit stuff, so I can put the license. About the image size for [[German: Front Page]], are you sure you want to keep it so big? I know you must have a 1024x768 monitor resolution or higher, but many, many people still haven't upgraded to that yet. About ''20%'' of internet users have only 800x600 resolution [http://www.w3schools.com/browsers/browsers_stats.asp]. For them, even at the compromise 750 size, all they see are the hills in the picture (without scrolling), not even any buildings. Sidescrolling is needed to see the whole thing lengthwise and ''even when centered'' on the screen it doesn't fit height-wise. Do you really want that to be what 1/5 of visitors see? To test what things look like, just make a bookmark with the address: <pre>javascript:void(window.resizeTo(800,600))</pre> Click on the link to resize your browser window and see the world from a new perspective. ;) &mdash; [[User:Everlong|Everlong]] 21:20, 6 April 2006 (UTC) I did, it really wasn't all that bad, I would I will turn it down to 700 or 715, that would be good, becuase it not HUGE in 800x600, however big, and it isn't too small for the rest of them. --[[User:German Men92|German Men92]] 22:52, 6 April 2006 (UTC) Please do not decrease the sizes of images (namely [[:Image:SchlossHeidelberg2.jpg]]) on the Commons. Doing so has no benefit, and the image may be used on other projects at a larger size. --[[User:Hagindaz|Hagindaz]] 04:03, 30 April 2006 (UTC) It actually does have benefits, no matter what increasing or decreasing the image, it will be higher quality. --[[User:German Men92|German Men92]] 13:00, 30 April 2006 (UTC) == Helping out == I see you're learning dutch. I'm learning norwegian myself, like you. We might be able to help eachother out. Especially if you use a VoIP program. (pronounciation is important too ;) ) Let me know if you're on some type of IM or VoIP program, and i could contact you. Or let me know if you don't want that at all. [[User:Linforcer|Linforcer]] 11:18, 24 February 2006 (UTC)Tommy Quist (linforcer) == German Textbook == Great to see your efforts to keep the German Language text moving along. I'll check in every once in awhile, but do not need to be "consulted" on any changes you think will improve. The book needs a strong proponent and does not need me - [[User:Marshman|marsh]] 18:51, 27 February 2006 (UTC) == [[Norwegian]] articles == Thanks for fixing them up and such, but please, do not subst the NorwegianTOC template. It will make it horribly cumbersome when you add, say, the seventh lesson, and you need to go back and update six pages for that. Or say you add lesson number 20, for that sake. 19 other articles to fix. The template is there for a reason, you see. [[User:DarkPhoenix|DarkPhoenix]] 21:51, 30 March 2006 (UTC) ==about image:French main image.png== There is a 's' missing in the word at the center. [[User:Greudin|Greudin]] 10:08, 1 April 2006 (UTC) : There isn't suppose to be a 's' in the center. --[[User:German Men92|German Men92]] 15:47, 1 April 2006 (UTC) Can I use the image as a redirect? Thanks again for creating it. And I do think he's right. I don't think réaliez is a word in French and the command "realize" is "réalisez." --[[User:Hagindaz|Hagindaz]] 02:19, 2 April 2006 (UTC)--[[User:Hagindaz|Hagindaz]] Okay, i'll try to fix it. --[[User:German Men92|German Men92]] 15:07, 2 April 2006 (UTC) : Just a reminder, update the image whenever you have some free time. Thanks --[[User:Hagindaz|Hagindaz]] 17:48, 8 April 2006 (UTC) Ok, will I've just been busy, I'll do it today, or tomorrow. And about the ne image thing for the French book, i'll have to get to later, after I'm done with a German wikibook, or take a break from it. --[[User:German Men92|German Men92]] 17:51, 8 April 2006 (UTC) : I think Réalisez! is great. I just changed it temporarily while I changed the background from transparency to white (IE has problems with clear pngs, also see [[w:Wikipedia:Browser notes]]) and trimmed it a bit. I don't have enough photo editing knowledge to add the s in there, so I decided to temporarily change it to français . So, please change it back and add an s in there. Thanks. (and how would it violate [[WB:NPOV]]?) Thanks again! --[[User:Hagindaz|Hagindaz]] 17:39, 9 April 2006 (UTC) I did add the 's' lol. I'll put the white on too. --[[User:German Men92|German Men92]] 18:35, 9 April 2006 (UTC) == [[:Image:Germany orb.jpg]] and [[:Image:Switzerland orb.jpg]] == I noticed that your [[:Image:Austria orb.jpg]] is under GFDL, because you put the template {{tl|GFDL-self}} on the image page (or you chose that license/licence from the menu on [[Special:Upload]]). However, your [[:Image:Germany orb.jpg]] is missing a license. Could you please add one? If you add the {{tl|GFDL-self}}, tag, your Germany orb would have the same license as your Austria orb. Also, [[:Image:Switzerland orb.jpg]] is missing a license. Thanks for adding images to Wikibooks, --[[User:Kernigh|Kernigh]] 20:24, 2 April 2006 (UTC) I tried adding on after reading this, but it won't work, I'm sorry. --[[User:German Men92|German Men92]] 22:54, 2 April 2006 (UTC) == Image:German.jpg == Please remember about licence of images. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 15:38, 10 April 2006 (UTC) Oh, yea, I forgot, I'll put it on today. --[[User:German Men92|German Men92]] 19:39, 10 April 2006 (UTC) == Polish == From what I see on your user page, you are learning Polish. Well, good luck :) If you have any question, you can write to me. I was planning to do something with [[Polish]] Wikibook, because I think in current shape it is rather unusable and does not teach practical language skills. I don't have much time now but I think that if I do something with it, I will borrow some ideas from German Wikibook, like order of lessons and so one. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 16:13, 10 April 2006 (UTC) Yes, I am, it's the most difficult language I'm learning, lol, I'm glad the German book has been benefical to other (future) books. --[[User:German Men92|German Men92]] 19:37, 10 April 2006 (UTC) == Congratulations == Congratulations, you have just been made sysop. I hope you will use new functions with consideration. If you have any questions about administrator's tools, you can leave me a message. When it comes to Mfinney case, there is still no consensus (it is general practice, but no policy, to consider user gained community trust when he has more than 80% support). I also am not contented that you put admin userbox on your user page before the vote was officially closed. I was away from computer and could not made you sysop before and anyone could cast oppose vote. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 21:05, 19 April 2006 (UTC) == Block conflict == You have just created a block conflict with [http://en.wikibooks.org/w/index.php?title=Special%3ALog&type=block&user=&page=User:82.211.102.138 user:82.211.102.138]. When two bocks are applied, only shorter one is used. When you see a vandal, go to his contributions page. You can find "block" and "block log" links there; use second one first. And another thing: never block IP's infinitely unless they are confirmed open proxies. It is not important how serious vandalism was - many other people can be using that IP. You can use spam database lookup at http://dnsstuff.com but remember that there are some false positives and IP can be considered spam/open proxy only when there are many listings (more than 5). Gernerally, IPs shouldn't be blocked for longer than 3 or (in extreme cases of mass spam) 6 months. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:34, 24 April 2006 (UTC) Thank you for that, and wasn't totally sure, but now I know, thank you. --[[User:German Men92|German Men92]] 20:38, 24 April 2006 (UTC) : Oh, and another thing. This does not apply in this case, but if there is a block conflict or you want to prolong a block, you have to unblock the IP first (this would remove all blocks) and then apply new block. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 21:14, 24 April 2006 (UTC) ==Policy review== Policy is not the most exciting subject at Wikibooks but we do have some major unresolved issues. The most important issue, in my opinion, is [http://en.wikibooks.org/wiki/Wikibooks:Dispute_resolution Dispute resolution] which starts by declaring that: '''"Currently there is no official organized process to resolve disputes between users"''' The suggested remedy for this is: [[Wikibooks:Ad hoc administration committee]] which puts into place the absolute minimum in terms of an enforcement apparatus. The second most important is [[Wikibooks:No personal attacks]] where a vote has recommended the policy be enforced but it still languishes as "proposed". The third policy that is needed and which will prevent edit disputes from getting out of hand is [[Wikibooks:Editing disputes policy]]. Other policies that need consideration are at: [http://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines Policies and guidelines]. Please spare a minute or two to peruse these issues and add a comment and/or a vote. [[User:RobinH|RobinH]] 12:32, 28 April 2006 (UTC) == Vocabulary tables == I suggest you use the input system from [[es:Plantilla:VocTabla]] (which also uses [[es:Plantilla:VocFila]]). This has a simpler input system than wikitables. See [[es:Francés/Vocabulario/La_ropa#Les_v.C3.AAtements_-_La_ropa]] for a usage example. --[[User:Hagindaz|Hagindaz]] 22:55, 28 April 2006 (UTC) I like your better though, it better designed, current;y i'm just doing some messing around with it right now. --[[User:German Men92|German Men92]] 22:57, 28 April 2006 (UTC) :I'm talking about not having to start new columns for every word. The title and colors can stay. This will encourage users to contribute vocabulary and make it easier to update. I plan on eventually doing this for the French book. Since the German template hasn't been applied yet, I recommend you go with the easier method from the beginning. Also note that the example templates on the {{tl|German table}} page only show the previous update, so you'll have to fake edit the page to see the changes. --[[User:Hagindaz|Hagindaz]] 23:05, 28 April 2006 (UTC) Okay, I'll consider, but right now I HAVE to modernize the german book, so i'll do {{tl|German table}} first, i fif I don't like afterwards, I'll change. --[[User:German Men92|German Men92]] 23:10, 28 April 2006 (UTC) :I cleaned up the code on {{tl|French Table}}, so you may wish to update yours. I HIGHLY recommend you use the Spanish one. All you would have to enter is: <pre>{{VocTabla|Les vêtements|La ropa |les vêtements|vɛtmɑ̃|la ropa| |la robe|ʀɔb|el vestido, el traje (de mujer)| }}</pre> :It's much simpler and the template can be copy/pasted without any corrections. You will also be able to create much better borders. --[[User:Hagindaz|Hagindaz]] 23:21, 28 April 2006 (UTC) I actually completed the german table, and I like it might not be the easiest thing, but once one get a handle of it is a pretty good table. --[[User:German Men92|German Men92]] 23:24, 28 April 2006 (UTC) :For clarification: The additions would not affect any part of the template you already have. Just copy/paste them after the "|-" and upload [[es:Plantilla:VocFila]]. This will save you a lot of time and will not confuse other contributors. --[[User:Hagindaz|Hagindaz]] 23:28, 28 April 2006 (UTC) == Print versions of [[German]] == Congrats on (most likely) winning Book of the Month! Are you planning on creating print and PDF versions of the book? If not, would you mind if I do them? Congratulations, [[User:Hagindaz|Hagindaz]] 21:44, 29 April 2006 (UTC) I would love to have print verisons, its been so busy, with be becoming an admin and tring to progress the german book, so can do print verisons for the German book, thanks. --[[User:German Men92|German Men92]] 21:49, 29 April 2006 (UTC) :I created a print version and will do a PDF from it. For level two and above, I used the naming scheme you used for level one, so they will not appear on the print version until you move them. As I was making the print version, I noticed a few discrepencies. Here are some suggestions: :First of all, pick a consistent capitalization scheme and stick with it. (For the French book, I only capitalize the first letter after every slash.) Secondly, use descriptive title names. Instead of "/Appendix 2," use "/Phrase book." Thirdly, I suggest that you have a questions and answers page, like [[French/Q&A]] (which I shamelessly stole from [[Japanese]]). :Fourthly, I think the sections outside of the lessons (appedices and grammar) should be more defined. Move the appendices lists to one separate page and link to it from [[German/Front Page]]. [[German Grammar]] should be integrated into this book, because it ''is'' part of the German language, and linked to on the front page. :Finally, have a consistent hierarchical scheme. For appendices, you use "German/xxx" and for lessons you use "German/Level I/xxx." Use one or the other. I created the scheme for the French book early on, when I didn't have a good idea of the book's organization. I recommend (and this is what I will eventually do for French): "German/1.01:Wie heißt du?," "German/1.02:Freizeit," etc for level one lessons, "German/2.0x:xxx" for level two lessons, and "German/A.01:Alphabet" for appendices. But if you decide to go with a two-level hierarchy, rename appendices to "German/Appendices/xxx." :Note that all of these are only suggestions, so feel free to ignore them all. Best of luck in completeing your book, [[User:Hagindaz|Hagindaz]] 23:39, 29 April 2006 (UTC) Thank you, and funnyly enough, I was doing your suggestions when the new message think appeared, lol. --[[User:German Men92|German Men92]] 23:44, 29 April 2006 (UTC) :Could you make it clear where it is that people should begin. There's an introduction, level one introduction, and first lesson. Maybe at the beginning of the first lesson, have a message box say to first read the forward? Also, make the the level one introduction more prominent, and link to it at the bottom of the general introduction. --[[User:Hagindaz|Hagindaz]] 00:06, 30 April 2006 (UTC) ::German Men92, I think the centered frontpage by Hagindaz looked much better. For me at least, it avoids slight overlap of the underlines with the text below it and makes the links to all the levels occupy one line instead of two. Besides, reverting all Hagindaz's work within five minutes because "it was designed to be this way, and centering looks wierd" doesn't seem fair. He was obviously active at the time, so sending a message to work something out would have been a better course. Also, like Hagindaz, I too feel a bit lost when trying to locate where to begin. ::-- [[User:Everlong|Everlong]] 02:03, 30 April 2006 (UTC) I'm going to delete or edit the introducion and make more like your [[French/About]]--[[User:German Men92|German Men92]] 00:09, 30 April 2006 (UTC) == [[German]] naming convention == Do you agree with the following structure structure: *Scheme for the '''chapter contents'''/info pages: **[[German/Appendices]], [[German/Grammar]], [[German/Level I]], [[German/Level II]], [[German/Level III]], [[German/Level IV]], [[German/Level V]] *And this would the scheme for '''subpages''': **[[German/Appendices/Appendix title]], [[German/Grammar/Subpage title]], [[German/Level I/Lesson title]], [[German/Level II/Lesson title]], [[German/Level III/Lesson title]], [[German/Level IV/Lesson title]], [[German/Level V/Lesson title]] *And this would be the scheme for '''templates''': **{{tl|German/Appendices/Header}}, {{tl|German/Grammar/Header}}, {{tl|German/Level I/Header}}, {{tl|German/Level II/Header}}, {{tl|German/Level III/Header}}, {{tl|German/Level IV/Header}}, {{tl|German/Level V/Header}} **{{tl|German/Appendices/Footer}}, {{tl|German/Grammar/Footer}}, {{tl|German/Level I/Footer}}, {{tl|German/Level II/Footer}}, {{tl|German/Level III/Footer}}, {{tl|German/Level IV/Footer}}, {{tl|German/Level V/Footer}} *And these would be the '''lone pages''' linked to from {{tl|German/Contents}}: **[[German/About]], [[German/Q&A]], [[German/Planning]], [[German/Introduction]] *And these would be the '''main pages''' and templates: **[[German]], [[German/Contents]], {{tl|German/Contents}}, {{tl|German/Contents/Footer}} Did I get every page? Do you have any concerns about this namimg scheme. BTW, [[German/Front Page]] would have to go, just like I stopped using [[French/Cover]] when you introduced your new [[French]] cover page. {{tl|German Lessons Compact}} would be merged into the contents template. I made it specifically for the French book, and it would only add to the confusion if used on German. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 16:40, 30 April 2006 (UTC) I'm cool with that, even though I would highly edit the contents page to make it look, at less similar to the front page, and I want to keep the lesson page themself like they are now, (with the "Wikibook's außern!" and the pictures, other then that I guess i'm game). --[[User:German Men92|German Men92]] 16:49, 30 April 2006 (UTC) :Yes, that's what I was talking about when I said to keep your own style. So, first decide on capitalization. (I recommend only the first word after every slash be capitalized, unless a common noun.) Then, move the lessons, appendices, and grammar to the agreed to naming convention. Once that's done, I'll create the templates. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 17:26, 30 April 2006 (UTC) Sounds great! --[[User:German Men92|German Men92]] 17:29, 30 April 2006 (UTC) :Are the names of the subpages going to be English or German? I personnally recommend English, because your Appendices and chapter titles are in English, and the subject matter is easily recognized by students. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 19:29, 30 April 2006 (UTC) Lesson names are in German, everything else is English it might seem odd, but it IMHO gives more depth to the lesson itself. --[[User:German Men92|German Men92]] 20:12, 30 April 2006 (UTC) :{{tl|TOCright}} doesn't work correctly in IE. Don't use it please. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 22:27, 30 April 2006 (UTC) I just removed it after be unsuccessful at it, even though I have firefox --[[User:German Men92|German Men92]] 22:29, 30 April 2006 (UTC) :Are you planning to move all of the German pages to the new naming convention and converting problems to {{tl|German/Exercise}}? [[German]] becomes book of the month in one hour. Make a good first impression! --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 22:55, 30 April 2006 (UTC) Oh god, yes! Right now I'm editing the little details, like colors, ect. And I might be rushing, put I need all the templates that are going to be on the contents page, it (content page) is very bare and that isn't a good first impression either. --[[User:German Men92|German Men92]] 23:00, 30 April 2006 (UTC) :What else can you have on the contents page? [[German/Grammar]] is a mess and the lessons have their own pages. It would be pointless to copy links to the five complete lessons. One thing you could do is use [[German/Front Page]], but replace the links at the top with {{tl|German/Contents}} and a link to the introduction, similarly to [[French/Cover]]. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 23:08, 30 April 2006 (UTC) Well, I'm going to fix the grammer in a moment, and I would to have a lesson template like on [[French/Contents]], and a Text template, because I have a few links to some German texts. --[[User:German Men92|German Men92]] 23:12, 30 April 2006 (UTC) :Links should not be given such a prominent possition. I will however create the lessons template right now. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 23:16, 30 April 2006 (UTC) ::[[Template:German/Lessons|Done]]! I can't do levels 2+ as you haven't renamed them yet. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 23:45, 30 April 2006 (UTC) Okay good, get ready for one for grammer, even though the info quality isn't the best I'm organizing it. --[[User:German Men92|German Men92]] 23:47, 30 April 2006 (UTC) :Okay, sure thing. We're revolutionizing education, one template at a time! --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 23:50, 30 April 2006 (UTC) Yup! Two wikibookians, a lot of templates, one legend. --[[User:German Men92|German Men92]] 23:51, 30 April 2006 (UTC) == [[German]] naming and subpages == A user [http://en.wikibooks.org/w/index.php?title=German/Print_version&action=history changed the heading] of the first lesson to "Wie heißt du?" on the print version for capitalization consistency. Please sort out capitalization, and [[Special:Prefixindex/German/|move all pages to that capitalization scheme]]. Also please update the page names for lessons 2-4. This should only take a few minutes, especially with Firefox tabs. Why did you delete the subpages of [[German/Grammar/Nouns]]? Each subpage had more than enough content to warrent devoting a page to. Secondly, you should never use level one headers, like you did on [[German/Grammar/Nouns]]. Thirdly, please update [[German/Print version]] whenever you delete or add pages, like your own instructions tell you to do. You also did the same thing for [[German/Grammar/Verbs]]. Could you please revert your actions on both pages? On [[German/Grammar/Verbs]], you started that page on April 30, so it looks like you are the sole author of all that content. Please turn that page into a contents list, and undelete the original subpages and move them to 'German/Grammar/Verbs/...' I cannot fathom why you decided to do what you did. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 18:56, 7 May 2006 (UTC) I'll get to the capitizion, but have though it's long I just want one page for each part of grammar, not German/Grammar/Verbs/...' but just German/Grammar/Verbs' and German/Grammar/Nouns. --[[User:German Men92|German Men92]] 20:41, 7 May 2006 (UTC) =={{tl|-}}== For future reference, the template {{tl|-}} forces everything that follows it to begin at the next line. You would use it after images and templates. See my changes to [[German/Level I/Zu Hause Essen]] and [[French/Lessons/Current events]] for examples. By the way, would you mind if I include the yellow development warning in the level one header as an optional call like the soundbite request? Either way, add it as part of the 'noinclude' tags. --[[Special:Emailuser/Hagindaz|✉]][[User:Hagindaz|haginძaz]]<sub>[[User talk:Hagindaz|t]]</sub>\<sup>[[Special:Contributions/Hagindaz|c]]</sup> 22:46, 7 May 2006 (UTC) Okay. --[[User:German Men92|German Men92]] 22:49, 7 May 2006 (UTC) == Nickname hint == In your preferences (click on the section next to talk in the top navigation bar), there's a section that allows you to use an automatic nickname. If the "raw signitures" box is unchecked, what you type in the field goes <nowiki>[[</nowiki>User:German Men92<nowiki>|</nowiki>'''here'''<nowiki>]]</nowiki>. If the box is checked, your entire signiture is replaced by what you give. I'm sorry if you already knew this. Cheers, [[User:Hagindaz|Russian Man]] 22:47, 15 May 2006 (UTC) lol, I knew that, but I haven't gotten to yet, and, Russian Man, I thought you French Man or something. --[[User:German Men92|German Men92]] 00:33, 16 May 2006 (UTC) == Language table == You've done an excellent job with the [[Template:German table|German table template]]. It has a very professional finish and helps to make things much more readable. :-) For that reason, I wanted to use it in the Brazilian Portuguese section of the [[Portuguese]] Wikibook. Of course, it was specific to the German book, so I made a new version. I decided to make a more general version, called [[Template:Language table|Language table]] (suggestions for a better name are welcome). I think I have made it general enough for other language-teaching Wikibooks to use it, and I hope it can be used as a base for language-specific tables in the future. Please see the [[Template talk:Language table|discussion]] page for some of those plans. I am relatively new to Wikimedia templates, so I would be grateful for any advice you can give on the template as it stands, and the plans. Thanks. [[User:Mjkaye|Mjkaye]] ==[[Wikibooks:No personal attacks]] Change of text== You voted for enforcement of [[Wikibooks:No personal attacks]]. The text of this policy has been changed by [[User:Jguk|Jguk]] during the vote, I have further modified these changes to restore some of the original "bite". This is highly unusual but without these changes [[User:Jguk|Jguk]] is unwilling to allow the policy to move to enforced. I am happy that the changes are not sufficiently substantial to undermine the policy, if you disagree then please make your views known. Changes to text during a vote could be construed as a delaying tactic so I have proposed a move to "enforced" status by 1st June. [[User:RobinH|RobinH]] 10:10, 20 May 2006 (UTC) ==PDF Version of the German language book== Hi, I tried to download the PDF version of the German Language book, but somehow even though I have tried for 6 times, each time the screen goes blank and the computer just stops downloading. So I was wondering if there is another alternative PDF version of the German Language Wikibook. Thanks!! [[User:68.48.32.65|68.48.32.65]] 01:21, 5 July 2006 (UTC) == Helping you with lesson five == Hey there, you asked me if I would help you with german lesson five here. I would be happy to do so, but I am going to need a brief introduction first. Best regards. [[User:Human Robot|Human Robot]] 18:13, 23 July 2006 (UTC) == [[Wikibooks:General voting rules/Proposal]] == I want to call the attention of all wikibookians, especially active admins to the discussion about the new voting policy. Wikibooks currently does not have a concrete voting policy in effect, so the adaptation of this policy will potentially create immediate differences in the way business is conducted here. Due to large amounts of discussion, changes, and dissention, there are several versions of this policy being considered: *[[Wikibooks:General voting rules/Proposal/Version 1|Version 1]] Written by [[User:Whiteknight]] *[[Wikibooks:General voting rules/Proposal/Version 2|Version 2]] Written by [[User:Jguk]] *[[Wikibooks:General voting rules/Proposal/Version 3|Version 3]] [[User:RobinH]]'s revision of Jguk's version *[[Wikibooks:General voting rules/Proposal/Version 4|Version 4]] Written by [[User:Kellen]] *[[Wikibooks:General voting rules/Proposal/Version 5|Version 5]] Whiteknight's Revision of Kellen's Version. Also, there are additional issues being discussed, such as the inclusion of a "minimum contributions" clause, that will limit users with less then 20 votes from editing. Also, there is a proposed clause that would allow this 20 vote minimum to be raised in response to abuse. I am sending this same message to all currently active admins. I hope you are able to come in and give your opinions on this matter. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:49, 11 August 2006 (UTC) == Comment on the long list of languages you speak == Hello! Thank you very much for all the efford you put into the wikibook projects, but there's something I wonder about. How is it possible that on the 4th of February 2006 you write in your profile, that you are just beginning to learn the german language, and on March 11st you consider yourself as a native speaker. How does that fit together? [[User:Cheonhajangsa|Cheonhajangsa]] 06:53, 25 November 2006 (UTC) == Your De-Adminship == You have been listed on [[WB:RFA]] for de-adminship. You will have your rights removed on 3 Aug 2007. If you contest this nomination, please respond on the previously-linked page. Thanks. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 01:28, 3 July 2007 (UTC) :Sorry if that above notification seems a little bit harsh, it isn't intended to be antagonistic. A while back we approved a policy that admins who are inactive for more then a year can be de-admined. This isn't any kind of a punishment or anything, so I sincerely hope you don't take it in a negative way. If you have any questions about this policy, [[User talk:Whiteknight|let me know]]. --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 01:44, 3 July 2007 (UTC) == Copyright problem with [[:Image:French main image.jpg]] == {{mbox|type=warning|msg= Thanks for uploading [[:Image:French main image.jpg]]. The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:French main image.jpg]] and other files you uploaded may soon be deleted unless we can determine the copyright holder and status. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add this information; there's no need to upload the image again. If you have any questions, feel free to contact me, or ask another Wikibookian at the [[Wikibooks:Study help desk|help desk]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. '''&ndash; [[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]''' &#124; <sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 16:52, 19 November 2007 (UTC)}} == German Book == Hello. Although I see that you have been away from say 2006, I still wanted to post this, so in future in case you see it and have any Q's. I am currently revamping the complete German Book, and am going to amend the chapters, their wises and vices too, so what will happen is that the chapters will switch places also the lessons will be places as per the lektion wises. Like the chapter 01 would be moved to say chapter 03, for e.g., likewise. Also, the lessons have very less English interpretations, which are required for there are many non German people using this book (at my work place there are a few who use this). So what I am doing is adding the English wordings while going through the chapters in a more prominent way. Oh, BTW, your work has been splendid and wish you were active while I am doing this, so you could assist me. Hope it works fine. Danke. [[User:Harrybrowne1986|Vishal]][[User Talk:Harrybrowne1986| Bakhai]] - [[Special:Contributions/Harrybrowne1986|Works]][[Image:Flag_of_India.svg|15px]] 14:46, 25 May 2014 (UTC) 5audo83sjxpmigbhm2qyb2oxcurxqrl User talk:Jim Hanson 3 69771 4668393 4650669 2026-09-03T15:19:20Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668393 wikitext text/x-wiki ==Welcome== Hello and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]! Here are some tips to help you get started: * You can sign your name on Talk and vote pages using four tildes, like this: &#126;&#126;&#126;&#126;. * Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]]. * Check out our [[Wikibooks:Help|help]] page if you need additional help. * Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]]. ** Take a look at [[Wikibooks:Naming policy]] * See [[Wikibooks:Template messages|list of templates]] which can save your time * Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]]. * Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun! You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Staff lounge|Staff lounge]], [[Wikibooks:IRC channels|IRC channel]] or ask me personally on my talk page. Good luck! --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 00:03, 1 April 2006 (UTC) ==Page naming== Can you read [[Wikibooks:Naming policy]]? Thanks. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 00:03, 1 April 2006 (UTC) : Did you read [[Wikibooks:Naming policy]] like Derbeth asked? You are creating pages in the wrong place. : On your table of contents page, you need to use a slash, like <code><nowiki>[[</nowiki><span style="background-color: yellow;{{text default color}};">'''/'''</span>Chapter Name<span style="background-color: yellow;{{text default color}};">'''/'''</span>]]</code> or <code><nowiki>[[</nowiki><span style="background-color: yellow;{{text default color}};">'''/'''</span>Chapter Name|Chapter Name]]</code>. On other pages, you need to write out <code><nowiki>[[Packing & Moving Household Goods</nowiki><span style="background-color: yellow;{{text default color}};">'''/'''</span>Chapter Name|Chapter Name]]</code>. : The slash is necessary because Wikibooks contains multiple books, and we need to know the owning book of each page. : Also, there is a '''Show preview''' button. No one is required to use it, but you might want to use it instead of "Save page" to preview your work. (When you use "Save page" a lot, it quickly fills both the history and the [[Special:Recentchanges|recent changes]].) Thanks for contributing to Wikibooks, --[[User:Kernigh|Kernigh]] 01:22, 1 April 2006 (UTC) == [[Packing & Moving Household Goods]] == I want to mention that I just got through reading [[Packing & Moving Household Goods/Introduction]]. Wow! [[Image:Puchipuchi.jpg|right|200px]] [[Image:Duct-tape Moving Van.jpg|right|130px]] This is an excellent title for a book, and it looks like you've put quite a bit of effort into putting this whole thing together. If you want to add a little spash to your book, you might want to check out the [[commons:|Wikimedia Commons]] for some images. With over 500,000 images there, you should be able to find something that you could use. Images can be added in the following format: '''<nowiki>[[Image:<image name>|<right or left>|<pixel width>]]</nowiki>''' Here are a couple of images that you can use right now. Just hit the edit button on this page to see the image links, or click on the images themselves to find the names of the images. BTW, that car image was from http://www.safetycenter.navy.mil/photo/archive/photo172.htm Read the caption on that... it is funny as heck. More of what not to do in this situation of do-it-yourself moving. --[[User:Robert Horning|Rob Horning]] 17:42, 1 April 2006 (UTC) == Redirected pages == There is a process here on Wikibooks to deal with redirecting pages to where you have moved content to, if there are external links pointing to Wikibooks on one page but the content really is somewhere else. Just try not to abuse this situation. Instead, you should try to catalog your book and see if other people are willing to help with developing this content by bringing it up in the Staff Lounge, various mailing lists for Wikibooks and other Wikimedia projects, or finding similar books or Wikipedia articles and trying to content people who have helped edit that content. Or even find other internet discussion groups that might be talking about the subject you are writing about. The content search system is indeed broken on Wikibooks, and that is something that I'm trying to work on as a "hobby" project right now. Unfortunately the plethora of pages you have just added is going to just make things worse, not better, for the current systems we have in place. --[[User:Robert Horning|Rob Horning]] 17:24, 8 April 2006 (UTC) == External links == I notice that most of the articles you have edited have a link to learntomove.com which is a site requiring payment for use. Wikibooks is intended to be read as stand alone content and so this promoting of a single website looks inappropriate --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 15:50, 1 January 2007 (UTC) :Afraid I agree with Herby and have removed most of the external links from this book. Sorry. --[[User:AdRiley|AdRiley]] 07:57, 8 November 2007 (UTC) mmuj7g4oyfjpc5s7opxdnks1y8bwugs Category:Book:Arabic 14 80186 4668487 3221537 2026-09-03T21:26:12Z Meno25 43227 rm iw 4668487 wikitext text/x-wiki {{book category header}} {{BookCat}} ptt9drnitry3svbos36hzjb54f56f99 User talk:Alejo2083 3 101114 4668403 4648833 2026-09-03T15:30:23Z ShakespeareFan00 46022 4668403 wikitext text/x-wiki Hello and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]! Here are some tips to help you get started: * You can sign your name on Talk and vote pages using four tildes, like this: &#126;&#126;&#126;&#126;. * Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]]. * If you're a '''Wikipedian''', see [[Wikibooks:Wikibooks for Wikipedians]] for a primer on how things work here (it's a little different). ** If you want to base your work here on materials from Wikipedia, please use [[WB:RFI]] to bring the material over in compliance with the GFDL. * If you're an '''instructor''' and plan on using wikibooks for a class project, see [[Wikibooks:Guidelines for class projects]] * Please say hello at the [[WB:SL|Staff Lounge]] with any questions or ideas. * Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]]. ** Please take a look at [[Wikibooks:Naming policy]] before starting a new book. * Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]]. * Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun! You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Staff lounge|Staff lounge]], [[Wikibooks:IRC channels|IRC channel]] or ask me personally on my talk page. Good luck! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 14:21, 22 November 2006 (UTC) == LaTeX == Can you take a look at [[Talk:LaTeX/Floats, Figures and Captions#Errors in Wrapping figures]]? Thanks. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 20:35, 2 January 2007 (UTC) : I think that it would be good to mention how to create SVG or PNG from LaTeX. I mean writing about [http://savannah.nongnu.org/projects/dvipng/ dvipng] (it's available eg. as a Debian package, it's easy to install and use) and pdf2ps, optipng (I hadn't heared of them before I saw your graphics). --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 12:07, 13 January 2007 (UTC) ::I don't think so, but if you really want to... the point is that with LaTeX you can basically create only DVI (using ''latex'') and PDF (using ''pdflatex''), that's it. Any other format is obtained from "tricks". You can obtain a PS with both ''dvi2ps'' or ''pdf2ps'', but it would work with any DVI or PDF source, there isn't any relationship with LaTeX anymore. About the PNG versions of LaTeX sources I have used: there are several ways to obtained them, but it's all about converting a PDF file in PNG, there isn't anything related to LaTeX in it. You could do: ::* opening the file with Acrobat Reader and taking a screenshot ::* let ImageMagic do the work, simply using the command <code>convert my_file.pdf my_file.png</code> ::* opening the PDF file with GIMP and save in PNG ::the way that gives you the best quality is the last one, I never used it just because you have to choose several settings to perform the conversion, while all the others are meant to use the best settings automatically (but I don't think they actually do). We could add a section with some suggestions about how to get any file from a LaTeX source but, as I have explained, it's not ''really'' something about LaTeX... you can start this section if you want, put what you know or just write the titles, I will help you with that as soon as I have some time, ok? [[User:Alejo2083|Alessio Damato]] 17:41, 14 January 2007 (UTC) I wonder where such information should be put: in [[LaTeX/Introduction]]? As for me, although converting DVI to PNG or SVG isn't strictly part of LaTeX, it's a common problem connected with LaTeX and this guide should also inform people how to obtain popular graphic formats from LaTeX. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 22:28, 18 January 2007 (UTC) : I have created [[LaTeX/Export To Other Formats]], it's just a beginning, but I guess this is what you were talking about. [[User:Alejo2083|Alessio Damato]] 18:15, 19 January 2007 (UTC) == Licensing == I'm not sure if you are aware that Wikibooks content is '''not under GPL'''. We are using GNU Free Documentation License so there is no reason for asking Peter Flynn for permission to re-license his work under GPL. The problem occurs with text by Tobi Oetiker, which is true GPL'd and cannot be used here. You would have to get agreement from all three authors of "Not So Short Introduction to LaTex2e" to license their work under GFDL. BTW, from what I see ("GNU Free Documentation License (...) allows to use the text freely as long as the original text is quoted and the original author is referenced"), you don't understand [[w:GNU Free Documentation license|GNU Free Documentation license]]. Please read the entry about it on Wikipedia. --[[User:Derbeth|Derbeth]] [[User talk:Derbeth|<sup>talk</sup>]] 09:36, 17 February 2007 (UTC) :now I read it all carefully... sorry but I don't like those bureaucratic issues. To sum up, I can include Peter Flynn work without any problem because it has the same license, but I have to contact Tobias Oetiker again because the GPL is not compatible with GFDL. I'll contact them by email and I'll fix everything. Thanks for your notice. [[User:Alejo2083|Alessio Damato]] 15:49, 17 February 2007 (UTC) 5el0n0mv2p01tba75irbefzcvn8rlr3 User talk:Brian Barbera 3 105495 4668303 4646158 2026-09-03T13:39:19Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668303 wikitext text/x-wiki ==Vandalism== Please stop adding nonsense to Wikibooks. It is considered [[Wikibooks:Dealing with vandalism|vandalism]]. If you would like to experiment, use the [[Wikibooks:Sandbox|sandbox]]. Thank you. [[User:Webaware|Webaware]] 01:12, 29 December 2006 (UTC) :Web is grouchy! Haha! &mdash;[[User:Brian Barbera|Brian Barbera]] 01:13, 29 December 2006 (UTC) == Blocked == You have been temporarily blocked from editing for [[Wikibooks:Dealing with vandalism|vandalism]] of Wikibooks. If you wish to make useful contributions, you are welcome to come back after the block expires. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 01:44, 29 December 2006 (UTC) == Thought == You seem to be spending time in rather non productive ways. We encourage you to use what you know to make meaningful contributions. If you interpret people here as grouchy, please realize most people are acting in good faith to improve the quality of the content. We would be thankful if you contribute your knowledge meaningfully. "[The internet]...cannot adequately convey emotion". [http://www.csmonitor.com/2006/0515/p13s01-stct.html] --[[User:Remi0o|Remi0o]] 08:38, 29 December 2006 (UTC) :I call people grouchy just for the fun of it. &mdash;[[User:Brian Barbera|Brian Barbera]] 06:25, 30 December 2006 (UTC) == PA People == Hello brian, I see that you are from pennsylvania as well. I right down the turnpike, near KoP. There are actually a surprisingly large number of wikibookians from our humble state. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:38, 31 January 2007 (UTC) == Blocked - again. == You have been temporarily blocked from editing for [[Wikibooks:Dealing with vandalism|vandalism]] of Wikibooks - again. If you wish to make useful contributions, you are welcome to come back after the block expires. Note that block periods are increased until you will be blocked indefinably. --[[User:Krischik|Krischik]]&nbsp;<sup>[[User_talk:Krischik|T]]</sup> 15:57, 12 February 2007 (UTC) == Re:Horses == I am neither a knight in shining armor, nor do I ride a horse. To be honest, i've never rode a horse in my life! --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:29, 12 February 2007 (UTC) ==Wikimedia Pennsylvania== Hello there! I'm writing to inform you that we are now forming the first local [[m:Wikimedia chapters|Wikimedia Chapter]] in the United States: [[m:Wikimedia Pennsylvania|Wikimedia Pennsylvania]]. Our goals are to perform outreach and fundraising activities on behalf of the various Wikimedia projects. If you're interested in being a part of the chapter, or just want to know more, you can: * Contact us on IRC at [irc://irc.freenode.net/#wikimedia-pa <code>#wikimedia-pa</code>] * Join our [http://lists.wikimedia.org/mailman/listinfo/wikimediapa-l mailing list] * Visit our blog at http://wmfpa.blogspot.com * Sign our list of [[m:Wikimedia Pennsylvania#Interested Participants|interested participants]] Thanks and I hope you sign up! '''[[User:Cbrown1023|<span style="color: green;">Cbrown1023</span>]]''' <small>'''[[User talk:Cbrown1023|<span style="color:#002bb8">talk</span>]]'''</small> 16:33, 12 July 2007 (UTC) rdbfumg2t8eu3jvguufhxadicqqdspg Wikibooks:Reading room/General 4 112405 4668441 4666483 2026-09-03T18:13:50Z Vivairan2 3600916 /* Wikibooks project is not defined by goal */ 4668441 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{Shortcut|WB:CHAT|WB:RR/G|WB:GENERAL}} {{TOC left|limit=3}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Archives/%(year)d/%(monthname)s |algo = old(60d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 |key = 7a0ac23cf8049e4d9ff70cabb5649d1a }} Welcome to the '''General reading room'''. On this page, Wikibookians are free to talk about the Wikibooks project in general. For proposals for improving Wikibooks, see the [[../Proposals/]] reading room. {{clear}} [[Category:Reading room]] == Images lost in Engineering Acoustics == Hello, I just made an updated PDF version of the wiki book on Engineering Acoustics. During this processes I realized that 19 Images are missing. I left the respective chapters out of the PDF version. You can find the missing files by opening https://en.wikibooks.org/wiki/Engineering_Acoustics/Print_version in your web browser and search for the text File: . I am not sure why they were deleted. But possibly they were moved to Wikimedia Commons first and deleted after that. I could try to restore the from the 16 years old PDF version but I lack any authorship information so I think we need to redraw all of them. Furthermore I realized that some of the rest of the images in the wiki book have got a very poor resolution Yours 18:22, 18 June 2026 (UTC) [[User:Dirk Hünniger|Dirk Hünniger]] ([[User talk:Dirk Hünniger|discuss]] • [[Special:Contributions/Dirk Hünniger|contribs]]) 18:22, 18 June 2026 (UTC) : {{re|Dirk Hünniger}} All media ([[:File: Acousticplanewave1.gif|A]][[:File: Acousticcontrolsurface.gif|B]][[:File: Acousticcontrolsurface.gif|C]][[:File: Acousticpressure1.gif|D]][[:File: Ra analogs.png|E]][[:File: Acoustic gen.png|F]][[:File: Enclosed Piston.png|G]][[:File: Equ1.jpg|H]][[:File: Equ3.gif|I]][[:File: Equ4.gif|K]][[:File: Comp.gif|L]][[:File: Example2holm1sol.JPG|M]][[:File: Exam2prob.JPG|N]][[:File: Exam2sol.JPG|O]][[:File: 1Dwave graph1.png|P]][[:File: String dwg.jpg|Q]][[:File: Equations1.jpg|R]][[:File: Equations2.jpg|S]]) except [[:File: Inductive law pass filter.jpg|Inductive law pass filter.jpg]] and [[:File: Open-twister.gif|Open-twister.gif]] were once deleted by [[User: Jguk|Jguk]] and [[User: Darklama|Darklame]] because after a grace period they still lacked copyright information. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 14:51, 10 July 2026 (UTC) ::@[[User:Kai Burghardt|Kai Burghardt]] ::Do we also need to delete the PDF then? It contains theses images. ::Yours [[User:Dirk Hünniger|Dirk Hünniger]] ([[User talk:Dirk Hünniger|discuss]] • [[Special:Contributions/Dirk Hünniger|contribs]]) 07:49, 11 July 2026 (UTC) ::: {{re|Dirk Hünniger}} It depends on the images’ contents, whether they’re copyrightable. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 08:40, 11 July 2026 (UTC) ::::@[[User:Kai Burghardt|Kai Burghardt]] Well to me the look copyrightable. And further more its just the same images that were deleted from the wiki due to copyright issues [[User:Dirk Hünniger|Dirk Hünniger]] ([[User talk:Dirk Hünniger|discuss]] • [[Special:Contributions/Dirk Hünniger|contribs]]) 13:33, 11 July 2026 (UTC) ::::: {{re|Dirk Hünniger}} As far as I understand the issue was a formality. All files must bear license info, regardless whether they’re copyrightable or not. It is quite possible all deleted images don’t meet the threshold of originality, but still were deleted because of this formality. Images like [[:File: Equ1.jpg|File: Equ1.jpg]] ''presumably'' contain ''just'' some rasterized text formula and as such are not copyrightable. I have not had a look at them, so I can’t tell. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 14:30, 11 July 2026 (UTC) :::::: @[[User:Kai Burghardt|Kai Burghardt]] If its just a formality and the images don't meet the threshold to be copyrightable we could just restore the deleted images from the PDF. But keeping the PDF and not restoring the images surely is a contradiction. Furthermore there are quite a lot of books with the same problem. [[User:Dirk Hünniger|Dirk Hünniger]] ([[User talk:Dirk Hünniger|discuss]] • [[Special:Contributions/Dirk Hünniger|contribs]]) 17:25, 11 July 2026 (UTC) == Citing WikiBooks? == Wikipedia has a page for Citing Wikipedia, but I haven't found one here, so I have a few questions: # How would I cite Wikibooks in an essay? # Do I need to cite sources on Wikibooks? If so, how? [[User:BlazeFlames|BlazeFlames]] ([[User talk:BlazeFlames|discuss]] • [[Special:Contributions/BlazeFlames|contribs]]) 22:48, 18 June 2026 (UTC) :# This should give you a good method: https://www.scribbr.com/citing-sources/how-to-cite-wikipedia/ :# Generally, no. We have [[Wikibooks:Policies and guidelines|no policy that requires or prohibits citing sources]] and we have a [[Help:Editing#References|help page on how to do it]], with a [[Wikibooks:Templates/Sources|number of templates]] to standardize the process. There is definitely value in citing sources, so I don't want to discourage it. :―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 09:10, 19 June 2026 (UTC) :: {{re|BlazeFlames}} As you can see in [[Special: Version#mw-version-ext|Special: Version § Installed Extensions]] this MediaWiki has the [[mw: Special: MyLanguage/Extension: CiteThisPage|CiteThisPage extension]] installed. On the English‑language edition of Wikibooks you can navigate to [[Special: CiteThisPage/Typewriting|Special: CiteThisPage/…]] even though it is not listed in the [[MediaWiki: Sidebar]] (but it’s listed in [[Special: SpecialPages#mw-specialpagesgroup-pagetools|Special: SpecialPages]]). However, on {{abbr|WB|Wikibooks}} I would link via the [[mw: Special: MyLanguage/Help: Page ID|page ID]] rather than the page title; replace <syntaxhighlight lang='text' inline>title=Booktitle</syntaxhighlight> with <syntaxhighlight lang='text' inline>curid=123456</syntaxhighlight>. ‑‑[[User:Kai Burghardt|Kai Burghardt]] ([[User talk:Kai Burghardt|discuss]] • [[Special:Contributions/Kai Burghardt|contribs]]) 15:09, 10 July 2026 (UTC) == A question about the user right move-subpages == Even though reviewers have the ability to move 100 pages per minute (per InitialiseSettings.php), they do not have <code>move-subpages</code>, which allows moving a book (with all its subpages) in one single action. Is this user right considered sensitive (hence it is restricted to administrators by default)? [[User:Codename Noreste|<span style="color:#0024FF">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 04:23, 9 July 2026 (UTC) :I'm not 100% sure what the problem is as long as mass moving is limited to admins in the first place, as this can really cause problems (I recently encountered this mass-moving 100 out of c. 260 pages on a wiki). I support filing a ticket at [[:phab:]] to extend [[:mw:Manual:$wgMaximumMovedPages|$wgMaximumMovedPages]] to 1,000. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 05:33, 9 July 2026 (UTC) == July 2026 Wikimedia Café meetups regarding Wikimedia governance and options for reform == <div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)"> <div class="box" style="float:left; padding-top: 10px; padding-right: 10px; padding-left: 10px; padding-bottom: 10px;">[[File:Wikimedia Café logo in plain SVG format.svg|60px|alt=The logo for the Wikimedia Café]]</div> Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities in July. Both sessions will focus on Wikimedia governance, including possible follow-ups to the [https://meta.wikimedia.org/wiki/Movement_Charter Movement Charter] and options for reform. Participants may attend either or both Café sessions. This month, to deconflict the Café meetups from Wikimania, the meetups will be held one day later than usual. #'''26 July 2026 15:00 UTC''' ([https://zonestamp.toolforge.org/1785078000 timestamp converter]), at a time friendly to the Americas, Africa, and Europe #'''27 July 2026 03:00 UTC''' ([https://zonestamp.toolforge.org/1785121200 timestamp converter]), at a time friendly to Asia and the Pacific Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]! <br /> [[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div> <span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 03:53, 13 July 2026 (UTC) == Request for comment (the future of Abstract Wikipedia) == <bdi lang="en" dir="ltr" class="mw-content-ltr">You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}} [[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:24, 24 July 2026 (UTC)</bdi> <!-- Message sent by User:DreamRimmer@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> == Call for administrators == Any experienced editor who has a good understanding of Wikibooks' policies should consider applying for administrator permissions at [[Wikibooks:Requests for permissions]]. Thank you. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] ([[User talk:Codename Noreste|discuss]] • [[Special:Contributions/Codename Noreste|contribs]]) 22:10, 5 August 2026 (UTC) == August 2026 Wikimedia Café meetups regarding [https://meta.wikimedia.org/wiki/Next_25 Next 25] == <div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)"> <div class="box" style="float:left; padding-top: 10px; padding-right: 10px; padding-left: 10px; padding-bottom: 10px;">[[File:Wikimedia Café logo in plain SVG format.svg|60px|alt=The logo for the Wikimedia Café]]</div> Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities in August. Both sessions will focus on [https://meta.wikimedia.org/wiki/Next_25 the Next 25 initiative], including [https://meta.wikimedia.org/wiki/Next_25/A_proposal_to_frame_Next_25 framing the initiative]. Participants may attend either or both Café sessions. #'''29 August 2026 15:00 UTC''' ([https://zonestamp.toolforge.org/1788015600 timestamp converter]), at a time friendly to the Americas, Africa, and Europe #'''30 August 2026 03:00 UTC''' ([https://zonestamp.toolforge.org/1788058800 timestamp converter]), at a time friendly to Asia and the Pacific Please see the [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Café] page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#Agenda._This_will_be_an_approximately_1_hour_Caf%C3%A9_session agenda details] and [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]! To subscribe or unsubscribe for Café notices on your talk page please [https://meta.wikimedia.org/wiki/Global_message_delivery/Targets/Wikimedia_Caf%C3%A9 go here]. <br /> [[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div> <span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">༄ᨒ𖠰 Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 01:32, 17 August 2026 (UTC) == Wikibooks project is not defined by goal == If it is for texbooks why is it called Wikibooks? It should be called Wikitextbooks! If it is for textbooks why does it contain cookbooks? For textbooks it's not supposed to have a [[Wikibooks:Featured books]]. [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 09:20, 1 September 2026 (UTC) :It's "textbooks" broadly construed: guides, manuals, how-tos, etc. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:15, 1 September 2026 (UTC) ::So we should change "Wikibooks:Featured books" to "Wikibooks:Featured texts". [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 11:17, 1 September 2026 (UTC) :::I disagree and even if I agreed, it would be priority #49,389. ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 11:20, 1 September 2026 (UTC) ::::It's according to community consensus that says this website contains textbooks not books. [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 11:23, 1 September 2026 (UTC) :::::"[[wb:WIW|Simply, Wikibooks is a collection of open-content textbooks.]]" [[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 11:26, 1 September 2026 (UTC) :Most textbooks are made by collaboration of some authors, co-authors and editors. Wikibooks help pages and guidelines remain silent when it comes to stages of writing a new texbooks. Even [[Using Wikibooks]] is not complete emough for enthusiasts. --[[User:Vivairan2|Vivairan2]] ([[User talk:Vivairan2|discuss]] • [[Special:Contributions/Vivairan2|contribs]]) 18:13, 3 September 2026 (UTC) == Wishlist 2027, invitation to share feedback == Hi, I’m [[m:User:SPerry-WMF|Sonja]] and I lead some of the [[mw:Contributors|teams]] at the Foundation who will be responsible for picking up wish work under the new wishlist process. As you may know, the [[m:Community_Wishlist|Community Wishlist]] started out as an annual process through which Wikimedia contributors submit and vote on technical improvements they would like the Wikimedia Foundation to work on. The main goal of it is and has been to improve the editing experience by making changes and features the community asks for specifically. In recent years, the process behind the wishlist has changed, and we’ve heard from many of you that it no longer meets many community members’ needs. So now, the Foundation is designing a new process with the community to improve how wishes are triaged, voted on, and prioritized in a way that is transparent, balanced across project families and language editions, and takes into account what the Foundation can deliver. I would like to get community input specifically on these three stages of the Wishlist process: * The [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#triage|'''triage stage''']], meaning how wishes are fleshed out, organized and filtered prior to voting ** We recommend to have a working group, including volunteers from various wikis and Wikimedia Foundation staff to work through this together * The [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#vote|'''voting stage''']], including who may vote and how votes are structured * The [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#postvote|'''post-vote stage''']], including how to bring equity into what work is prioritized ** One way to do this is to rank wishes within 3 categories: Large Wikipedias or covering all wikis, small and medium-sized Wikipedias, and '''sister projects''', so that top-voted wishes from smaller projects also get attention This message is an abstract of the full proposed process. As you [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027|read the proposed ideas on Meta]] (available in your language), please speak up about whether you think this will work well or if there are ways to make it stronger. Regarding the timeline, this consultation is open for two weeks. You can post your feedback on Meta (in your preferred language) or in response below. For this year’s cycle, [[m:Special:MyLanguage/Community_Wishlist/Community_Wishlist_2027#timeline|we plan]] to have the wish submission period in late October/early November and the triage process completed by late November. To respect the end-of-year holiday season, voting would happen in early to mid January. This first voting cycle is meant as a first step to try out a new process, and there will be more opportunities to provide feedback along the way, so that we can figure out the best process for future years together. [[oldwikisource:M:User:SPerry-WMF|SPerry-WMF]], delivered by [[User:Trizek (WMF)|Trizek (WMF)]] ([[User talk:Trizek (WMF)|discuss]] • [[Special:Contributions/Trizek (WMF)|contribs]]) 13:52, 1 September 2026 (UTC) kwwc4gnlxqd12l0i5lf9dzegsyj8jap User talk:Iamunknown/Archive 1 3 117573 4668267 4652282 2026-09-03T13:02:36Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668267 wikitext text/x-wiki __NOEDITSECTION__This is an archive, please do not edit it. == Thanks == Thanks for the welcome and information! I'm sure that it will all prove to be most helpful. Good luck with your classes! :) [[User:Alainna|Alainna]] 07:33, 26 November 2006 (UTC) == Welcome! == As you are handing them out you should get one too! Hello and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]! Here are some tips to help you get started: * You can sign your name on Talk and vote pages using four tildes, like this: &#126;&#126;&#126;&#126;. * Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]]. * If you're a '''Wikipedian''', see [[Wikibooks:Wikibooks for Wikipedians]] for a primer on how things work here (it's a little different). ** If you want to base your work here on materials from Wikipedia, please use [[WB:RFI]] to bring the material over in compliance with the GFDL. * If you're an '''instructor''' and plan on using wikibooks for a class project, see [[Wikibooks:Guidelines for class projects]] * Please say hello at the [[WB:SL|Staff Lounge]] with any questions or ideas. * Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]]. ** Please take a look at [[Wikibooks:Naming policy]] before starting a new book. * Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]]. * Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun! You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Staff lounge|Staff lounge]], [[Wikibooks:IRC channels|IRC channel]] or ask me personally on my talk page. Good luck! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:48, 26 November 2006 (UTC) ==Re: Image Sources and the General Welcome== Thanks for the information regarding the image - I was pretty much as fresh as they come when I uploaded that image but after a couple of days of familarising myself I have started to grips with the basics. Many thanks for the offer of help - i'll be back if I come across any difficulties. --[[User:SamEEE|SamEEE]] 20:46, 3 February 2007 (UTC) == You are so right! == I doubt I could have put it better myself! I've not been here at all long (but have been quite active) but getting used to the differences has taken time (one I particularly love - don't ask why "speedy deletes" aren't speedily deleted - you will be told that the name doesn't mean they will be dealt with speedily!!!). That said I like it. It is way less strict and formal than Wp and the folk are pretty good. Hopefully you will stick around but you will get to know folk, there really are many and there is plenty of housekeeping to do if you want to get involved. For example if you are used to WP you will know that there are as many RC patrollers as there are vandals <g> - here you are in contact with around 50% of the active RC team! Take that as a hint if you feel inclined - tho traffic is different too, 500 showing on RC will be about 12 hours quite often. Anyway I will quit rambling and do some work but stick around and help - it would be good. Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:06, 27 November 2006 (UTC) == I did tell you! == About [[Sap sd]] - I agree however the procedure/speed here just ain't like WP. There is a very laid back approach to housekeeping generally here (however I'm up for admin and do intend to do some cleaning, so rest assured the deletions WILL take pace <g>) and not that many people to do it. For your info the qr-em tag is kind of neat - basically it allows the author 7 days (or much longer) to turn nothing much into a stub at least. After 7 days it auto becomes a speedy (also avoids biting newbies). Do keep looking for stuff tho and bring it up somewhere/somehow - there are some darl corners around. Regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:07, 2 December 2006 (UTC) == Unsolved == How weird and well spotted - looks fairly inconclusive so I guess we'll let it run. Appreciate it --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 16:36, 5 December 2006 (UTC) == Stuff == Hi - only just in and picking up threads. Give me a bit and I'll get back to you on both. The work on stuff is appreciated - stick around :-) Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:24, 6 December 2006 (UTC) :God you soon SO like me when I started <G> (lounge posts!). I'll certainly look at it when I get time but time here is different (and that still does piss me off)! Take care --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:09, 6 December 2006 (UTC) :BTW will AWB do page renames/moves? I've got it and use it from time to time --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:13, 6 December 2006 (UTC) :Feel free to look at my .js and yes it works --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:14, 6 December 2006 (UTC) ::It was popups I was on about working BTW (I really wouldn't be without it). AWB wise, no sign up here (which I think is a little odd). I've enable spell checking locally so if you use it feel free to check typos (tho I think a couple need fixing - I update it from time to time). I'm actually at work (!) so more when I have a break --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:33, 6 December 2006 (UTC) ::Yeah but change the shortcuts to what you want and the admin links bit on popups won't work for you (yet!)--[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:37, 6 December 2006 (UTC) ::Have a good rest - you'll have mail when you are next on! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:39, 6 December 2006 (UTC) === Techy bits === Feel free to run AWB with some caution. There are so many pages badly cat'd (categorisation is a subject I want to raise when I get time). Check you have the latest version (they do update often, and I must do the same). As I said I created the page for typos but maybe check how recently I updated it. AWB does not like WB's habit of using links in titles either - take care on that (& possibly other diffs). Scripts - there are some great ones on WP - still surprises me how few people here use them - I am basically lazy, if there is any easy way - great. Popups is my fave tho, first thing I did here - live preview is wonderful. If you find any useful ones feel free to let me know. === WB bits === Bear in mind I'm still fairly new too. I am something of a deletionist but I am begining to be a little more tolerant. AFAIK all unlicensed images are due for deletion (uploaded prior to 1st Nov) so i wouldn't worry too much about them - I think it is a "bot" job - as such I'm not sure listing them is good use of your time. Good find on the Halo ones - I think they are del ones. I'll run it past a more experienced admin first I think - deleting pages is fine - "books" are way different. I did say there were dark corners here (well intended to but it came out as "darl"!). Refactoring/policy - hum! This place isn't strong on policy. My view FWIW would be that the page needs arc'ing and I would clear any dealt with junk to the archive page (if I understand you correctly). Naming - needs attention in many books. Can tag it but I tend to do any that I see while I'm there as it were? As stated above - policy isn't a popular topic here (look in the lounge arcs at some of my earlier peices!). However I would love to get some guidelines underway for external links. The view is that they are probably ok (not mine) - I see them as merely a subtle form of vandalism, I'm sure some are ok but some pages are nothing short of dire (for a reader) - spam welcome at [[User:Herbythyme/Over EL pages]]!. I'd be happy to have any input at [[User:Herbythyme/poss el policy]]. Hopefully you've slept and this answers at least some of your questions - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:13, 6 December 2006 (UTC) === Work for both of us! === You want me to do a merge - do you know how scary that is - I barely understand the instructions! OK I'll look at it. Halo you are right & I'll start deleting now if nothing else comes up - hopefully finish tomorrow. For you - [[Special:DoubleRedirects]] if you do any moves check these out and fix the ones you create - if you don't do any moves fix the ones that are there <g> - I'll be in touch --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 20:17, 6 December 2006 (UTC) :Thanks for the work on the redirects - a nuisance but needing doing. Browse the "module cleanup" in tools any time - there is always something in there needing attention and it helps in learning about the place (as always if in doubt ask, you've "met" most folk by now). Got quite a way thro Halo and will finish that today with luck - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:39, 7 December 2006 (UTC) == Stop!!!!! == Do not move pages from Transwiki_talk to Talk:Transwiki. You are undoing a lot of work done by one of our friends on meta. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 21:41, 6 December 2006 (UTC) :No problem... I saw you had only done it on one page. "Transwiki" is a namespace (like "Wikibooks", "Template", or "Cookbook", etc.). The Talk:Transwiki pages actually need to be deleted. :Otherwise you did the right thing in theory, but it's going to be harder to find the "Talk:Transwiki" pages now :-(. (The double-redirect was a good way to find them). --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 21:46, 6 December 2006 (UTC) ::Uh, the transwiki namespace is for mudules transwikied from other projects, not modules that are going to be transwikied. ::The Mips assembly thing is a long story... I had tw'd it into the main namespace, because we hadn't figured out yet that the Import tools overwrites existing modules (there already was one there). That's a large part of why we requested the creation of the Transwiki namespace, because the import tool doesn't tell you if you're importing onto an already-existing page.--[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 21:55, 6 December 2006 (UTC) == AWB == I was watching the RC feed on IRC, and I saw your edit as soon as it happened. You are welcome to use AWB, wikibooks currently doesnt have any policy to govern the use of that tool. If more people get it, or if we have problems with it, perhaps we will put some restrictions into place. However, you seem trustworthy, so feel free to use any tool you want! By the way, thanks for your help around here. We always need more helpful people. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:35, 7 December 2006 (UTC) == Twins? == I honestly think we're twins. Are you a Junior in high school? You just read The Scarlet Letter, right? I absolutely loved that book, too, compared to all others we read (except I also enjoyed To Kill A Mockingbird). Your list of who you want to read, just add Aristotle, is EXACTLY mine, everything from Neitzche (I just got a philosophy book on him) to Mostly Harmless, and I've read the other four! Sorry, I was just amazed by that haha. We're obviously the same person. I work at the library, so I'm able to see all these books, and they tempt me, but I know I have to wait until I finish my current one haha. Well, once again, thanks for telling me about the Delete... --[[User:Mathos|Jaden Mathos]] 04:06, 8 December 2006 (UTC) Oh, I've been planning to rad Beowulf for quite some time; and I'm getting to it in the Norton Anthology of Word Literature, but I'll have to use the internet for the other one. Thanks for the recommendations! --[[User:Mathos|Jaden Mathos]] 05:19, 9 December 2006 (UTC) == Re cats == Good work and use of AWB - could you look at making most (not necessarily all) cats you come across to be <nowiki>[[category:Whatever|{{SUBPAGENAME}}]]</nowiki> as this will correctly alpha cat stuff - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:24, 8 December 2006 (UTC) == More == Thats good work on cats and cleanup stuff generally. Cats are something that - to me - require quite a bit of attention. Quite a few are created and used without much thought (there is nothing much in the way of guidance so not that surprising). It is one I want to dig into a bit deeper but help/input would be more than welcome (& it would be great use for AWB - feel free to vote for my bot account BTW on RfA page!). By & large Wikijunior looks pretty good with a top page in the overall category and then subpages in the category for the book (alpha cat'ed in previous work by me). However looking a bit wider that really does not seem to have been the way cats are usually used. An entire book '''may''' be cat'ed at what to me is the top level (or indeed not at all). While I think it would be good to get some action I think some discussion should take place (I hoped to get one going at [[Category talk:Main page]] but de nada). However [[:Category:Main page]] is a good place to explore from a look at some of the frankly daft inconsistencies. Feel free to get back to me if you want more of my thoughts or anything. It certainly makes for interesting browsing - for example WTF is SPM - ok I read the page but the title is hardly helpful. While it would be a manual job as far as I can see the "How to" pages could be better cat'ed in my view (but mine is only one view). Yours to me - images aren't my strong point but you are right to get this one going. I'll certainly look at it as soon as I can - I take it the speedies you have marked you have checked out (look like they should belong somewhere but the editor is inactive at pres)? If so I'll del them as soon as I hear from you. Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:07, 9 December 2006 (UTC) == Categories == Just wondering, what reasons you have for changing categories for example from '''Programming''' to '''Programming textbook pages'''? I think we might be working against each other, because I've been moving pages away from categories ending with '''textbook pages'''. I just noticed, so thought I would try to get with you on this, so we can resolve any differences of opinion and start working together rather then against each other. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 02:04, 10 December 2006 (UTC) : At first I disliked the idea of having the '''textbook pages''' categories, but then I thought it might be convenient, especially in categories with a lot books, such as [[:Category:Computer programming|programming]]. Then the relevant subcategories, such as (i'm naming these off the top of my head) programming in the windows environment (not a book, but a category of books), server-side programming (containing books on php, asp, etc.), would be more easily accessible, and the textbook pages would be conveniently in that one '''textbook pages''' category. : I know that one could argue that then the textbook pages are less accessible. But that is why, for general programming wikibooks, we keep the top pages of the wikibooks in the main category (in this case '''programming'''). : Anyways, that is what I was thinking. Did I even make sense? =\ I rarely do. --[[User:Iamunknown|Iamunknown]] 02:43, 10 December 2006 (UTC) :: I can understand trying to divide a category into smaller subcategories. I don't think having textbook in the category is needed to do that though. From what I've see each book should have a category by the same name as the book in which all its pages should go. The first page (that is the top level page in which all the subpages/chapters are located) is then additionally located in some other category. In the case of Programming, I've been focusing my attention so far on {{bad link|Category:Programming languages}}, but I think {{bad link|Category:Programming}} should be cleaned up to have just the {{bad link|Category:Programming languages}} category with the varies language categories located within {{bad link|Category:Programming languages}} category and any subpages fixed to not include either one. What do you think? I hope I made sense. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 03:05, 10 December 2006 (UTC) ::: ''Aside:'' I agree that most of the programming wikibooks should be in the '''programming languages'''. ''Now:'' I'll explain the circumstances that made me entertain the idea of having a '''[name] textbook pages''' category schema. I was working in the [[:Category:Microsoft Windows|Windows]] category. It has two multi-paged wikibooks, several single-page wikibooks, and one category. The child category, '''[[:Category:Windows XP|Windows XP]]''', has two one-page wikibooks and one multi-page wikibook. All the multi-page wikibooks have their top-level page in their respective category in addition to the top-level page and all the other pages are in the eponymous category. But that causes confusion in the parent cat, '''Windows'''. Then two categories are "wikibook pages" categories, while the other is a normal category. I was confused as to what to do. When I saw the '''Programming textbook pages''' category, I was sure I found the answer. I haven't moved any of the '''Windows''' wiki-sub-cats into their own '''Windows-related textbook pages''' cat yet, but I was originally planning to. That is why I thought having a '''[name] (text/wiki)book pages''' cat would be appropriate. Cheers, [[User:Iamunknown|Iamunknown]] 04:14, 10 December 2006 (UTC) :::: Ok first I've been doing too many edits. I haven't been changing things to programming languages as much as I thought. Must of been some other categories. However I think its a good idea to organize it regardless of the fact I haven't been doing it as I previously thought. :::: I don't think I understand the issue with the Windows-related categories. the top-level page of each book probably should be in Windows category, and the category by the same name as the books probably should be categorized to have Windows as its category. Could you explain what the issue is your trying to fix? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 04:39, 10 December 2006 (UTC) ::::: When I got to the category, it was a mess. I cleaned it up by removing all but the top-level pages from the category (standard) and then moving the top-level pages of the three xp-related wikibooks to the '''windows xp''' category. The problem is that, in the '''windows''' category, there are two categories that only contain pages of their eponymous wikibooks, and there is one category ('''windows xp''') which contains the top-level pages of three wikibooks. That is the problem. ::::: I thought it would be remedied by creating a "Windows-related wikibook pages" category, because then there would be two distinct type of categories--a regular category and a wikibook-page parent category. That way, if any more Windows-family wikibooks are created, the '''Windows XP''' category wouldn't get swallowed and lost in a bunch of wikibook-page categories. --[[User:Iamunknown|Iamunknown]] 04:47, 10 December 2006 (UTC) :::::: The category as it is now looks good, so you've done a good job. :) :::::: Do you intend for the Windows category to be a general category for all Windows related books? If so I don't think there's any need to further categories the two categories that are present at this time. Subcatagories I think are generally only created out of a current need, such as because there are a ton of books in the category. Your bit about "That way, if any more Windows-family wikibooks are created", sounds like a mistake I've made a few times, trying to prevent some potential future catastrophe through fortune telling of a future even which hasn't come to pass yet. The best advice I can give is don't worry about it until it becomes a problem, if it becomes a problem, just as you helped to fix the Windows category, you or someone else may come up with a solution to fix it then. Also don't worry about problems that "might happen" and just focus on current ones. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 05:16, 10 December 2006 (UTC) ::::::: Sounds like good and needed advice to me. Thanks. [[User:Iamunknown|Iamunknown]] 05:24, 10 December 2006 (UTC) == Mumfum == Good job on {{user|Wellspring}}! --[[User:Swift|Swift]] 07:14, 10 December 2006 (UTC) == Hum == Wouldn't mind you emailing me, if you don't want to - no problem! Some good work going on - thanks --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 17:58, 10 December 2006 (UTC) :I know <g> - you have mail! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:11, 10 December 2006 (UTC) == Uberish == Would you be interested in learning Uberish? --[[User:Eura23]] : ''Answered at Eura's [[User talk:Eura23|talk page]].'' --[[User:Iamunknown|Iamunknown]] 18:34, 10 December 2006 (UTC) :: Thanks for notifying me. Also, what kind of experience do you have with languages, and with which ones? Third, which conlangs do you suggest from the Conlang wikia? --[[User:Eura23|Eura23]] ::: ''I posted a post on your talk page without seeing this one first.'' ::: You're welcome. :-) And thank you for the kind response. I have little experience with languages. I know a lot from reading linguistics and con/nat language articles on Wikipedia, I have taken Spanish for a couple of years, and I know tidbits of other languages. I haven't looked at many languages at the Conlang wikia, but one of my favorite conlangs, as a Lord of the Rings fan, is [[Quenya]]. The Wikibook is a pretty good starting point, and there a many other resources on the Internet to help you along. Also, consider looking at [http://www.omniglot.com/ Omniglot.com.] It has constructed and natural languages (mainly ortographies), and it is really cool to browse around. ::: Lastly, I hope you stay around at Wikibooks. We always have room for more. :-) Again, thanks for your kind response. Cheers, [[User:Iamunknown|Iamunknown]] 19:08, 10 December 2006 (UTC) == Neat == I like the double colour close! And particularly the fact that someone has at last closed the (!) thing. Closing the others would be lovely..... I'll happily close stuff but not my area of expertise or interest. I think the closing template is accepted "policy" now. Kinda started by me, improved by Dragontamer and tidied by Darklama! You probably should look at the strategy to archive VfD which has changed from standard page arc to sub page which should make it easier to find stuff later (I think you may be aware of it but just in case. The uberish was handled well - I did reply to you. Let me know if I can help - regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:38, 11 December 2006 (UTC) == Re: VFD == No stepping-on-toes assumed. I'm still not familiar with the VfD templates, and I would hate to use them incorrectly. It seems to me to be mostly an aesthetic thing anyway. Either way, thanks for fixing it. Also, I didn't notice that I voted twice. Thanks for fixing that! --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 17:11, 11 December 2006 (UTC) :Closing VfDs - not an admin job when consensus is clear. I was doing it before I was an admin - feel free when you want to. Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:39, 12 December 2006 (UTC) ::Re: closing VfDs - I guess I'm used to Wikipedia AfDs, where only admins close, and if any user even suggests closing, then he is pariahed. :P --[[User:Iamunknown|Iamunknown]] 19:05, 12 December 2006 (UTC) :::OK - I ''thought'' others could close on WP (tho only the brave!) here I ''don't'' think it is an issue - certainly I closed a few obvious ones before being admin). I was told off for closing in under 7 days (I had decided it was borderline speedy). I actually see it as one of those useful things to do. Stuff here really is different to WP - much looser - opening stuff is ok - getting any kind of closure on anything is a different matter <g> --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:05, 13 December 2006 (UTC) == Suggestion == There is actually another approach with time that can be done that probably wouldn't cause a problem with caching that involves using subst. When this was being discussed, people seemed to like the idea of having timed delay templates. The perticular reason for the approach taken was it allowed new users to develope the text futhor and not have to remember to remove the tag and if not left unattended again for a period readd for speedy deletion. With the other approach, people would have to remember to remove the tag otherwise it would remain in speedy deletion regardless of any edits. I went with what people wanted and seemed to work. There may be improvements I could make to the current approach. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 21:57, 12 December 2006 (UTC) == Thanks for the suggestion == I decided on C++ because I have willing and very able tutors but I plan to do PHP next for exactly the reasons you laid out. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 22:49, 12 December 2006 (UTC) == Re: Reference == A: We don't need references on pages in the Wikibooks: namespace... they're policies and tools, not books. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 21:37, 14 December 2006 (UTC) == Wikibooks Newsletter, Volume 1 == <div style="text-align: center;"><small>([[Wikibooks:Wikibooks gazette|Wikibooks gazette home]] | [[Wikibooks talk:Wikibooks gazette|Discuss]] | [[Wikibooks:Bulletin board|Bulletin board]] | [[Wikibooks:Active wikibookians|Subscription list]])</small></div> This is a short newsletter that is being distributed to all active wikibookians. You are getting this message because you are recognized as an established contributor to the project. This newsletter will be distributed on a regular basis to help share news, information, and tips. It comes from a bot account, [[User:The Staff]]. [[User:The Staff]] is currently operated by a team of wikibooks admins, the complete list of which is available on the user page of the bot. If you would like to not receive this newletter anymore, please remove your name from the list at [[Wikibooks:Active wikibookians]]. The work you do at Wikibooks is greatly appreciated. However there are plenty of other opportunities for you to get involved and help us to create a thriving Wikibooks community. We are sure that there are things we can do to help you and your understanding of Wikibooks and similarly there are certainly things you could do to help Wikibooks become a better place. We would like to ask all wikibookians to add the [[WB:BB|Bulletin Board]] to your watchlists. The Bulletin Board is a fast and easy way for wikibookians to communicate important news and events to the entire community. If you have important news to share with the community, you can feel free to add your own entry to that page. If you have general questions or comments about Wikibooks, you are welcome to post a message on [[WB:SL|The Staff Lounge]], a free discussion area. Your input would also be welcomed in the [[WB:VFD|Votes for Deletion]] and [[WB:RFA|Requests for Adminship]] discussion pages. These pages are all active discussion areas that help to shape the Wikibooks community as a whole. Sometimes it is easy to forget that the Wikibooks community is much larger and more diverse then the people who work in a single book, or on a single bookshelf. Hopefully, together we can all make Wikibooks a better place, and a more valuable educational resource. <div style="text-align: center;">[[User:The Staff|The Staff]]<br>04:16, 19 December 2006 (UTC)</div> == WB:RFA == I've nominated you for adminship on [[WB:RFA]]. Voting will commence once you accept your nomination (and I hope you choose to do so). We certainly may not agree on many things around here, but I cannot deny that you are working for the greater good, and that you want the best for this project. You've taken upon yourself a number of difficult, time-consuming, and often thankless jobs (such as the image tagging), and I would like not only to thank you for that, but also draw community attention to your admirable efforts. Talk to you later. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 04:27, 20 December 2006 (UTC) == Your decline== Hi Iamunknown! I hope you won't take my comments the wrong way... you do a lot of great work for the wikibooks community, I just felt that you hadn't been around long enough to get a proper feel for that "gray area". If you decide later that not having the tools is driving you crazy (i.e., the admins aren't cleaning up the messes you point out fast enough), let me know via email, and I'll nominate you again. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 02:08, 21 December 2006 (UTC) == Hey there... == It's nice to see you too. :) --[[User:Elaragirl|Elaragirl]] 15:39, 21 December 2006 (UTC) == Bad transwiki tag... == Forgot to mention this (actually I had forgotten that I made the template): please use {{tl|qr-twwp}} if you see anything that might be a wikipedia dump. (How on earth do you find them, BTW? It's uncanny!) --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 17:36, 22 December 2006 (UTC) == And back == All the best to you too - have a great break and fun! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:41, 23 December 2006 (UTC) == Images question == I asked Herby this question and he referred me to you, so I'll ask: is the fact that an image is orphaned and licenced under fair use a good cause for speedy deletion? How long do you think one should reasonably wait before tagging such an image (I've tagged a few already that were over 2 years old, but as I get into newer ones the question will become less clear). If it IS a good cause, should I/someone make a motion to change the deletion policy to reflect this? Thank you for your time. Reagards.[[User:Mattb112885|Mattb112885]] 19:24, 23 December 2006 (UTC) : I didn't even realise that there wasn't a criterion for speedy deletion that covered orhpaned fair use images. I've created a proposed amendment at [[Wikibooks:Deletion policy/Image amendment]]. Consider looking at it. I think it may pass readily; it is already standard process to nominate orphaned fair use images for speedy deletion. : As for time, as policy is now, I would suggest tagging them on sight. It would be appropriate to notify the uploader and perhaps leave a note on the talk page of wikibooks who would have interested contributors. We may wish to expand the amendment to do something like Wikipedia's seven-day categories, so it gives the uploaders or other interested Wikipedians seven days to do something with the image. : Thanks for asking. Stay in touch. Cheers, [[User:Iamunknown|Iamunknown]] 22:25, 23 December 2006 (UTC) ::It looks like the right idea to me, I think we should make a mention of it on the staff lounge to get more opinions, though you're right it does seem to be standard, sensible practice to do this. I'm just a policy nut, I don't like doing anything there's not a policy for! (though I'll confess sometimes there's too much policy, in the case of wikibooks it's often not enough, and/or is very scattered, as I'm sure you know). I'll tag them, I'm not sure if there'd be any remaining books interested in using many of them, since they look like they came from an intended or a deleted video game manual, the likes of which tend to be deleted and/or transwikified recently. But isn't there kind of a contradiction between tagging the image for speedy and contacting people to see if they're interested in the image anyways? I agree that the 7 day thing would be more reasonable, though we may need to give a longer time than that since we have more scattered input than wikipedia would. Regards, [[User:Mattb112885|Mattb112885]] 03:51, 24 December 2006 (UTC) ::: That is a contradiction. And it is probably unnecessary; on Wikipedia, at least, it isn't done. But I still think it is a good idea to notify the uploader. ::: I hope, and the administrators have been deleting the images I tag. With attention to amendment and hopefully a successful amendment, other users might become aware of this. --[[User:Iamunknown|Iamunknown]] 04:05, 24 December 2006 (UTC) *reset Guessing you are both watching this one. I agree with what has been said basically (& I've been deleting them but I am a bit that way inclined!). I do think if the editor is current some period should be allowed after a talk page message. I also feel a mention in the staff lounge would be good - however bear in mind that much "policy" is made on the hoof! Regards to you both --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 12:13, 24 December 2006 (UTC) == recent additions == see [[Wikibooks_talk:What is Wikibooks/Unstable]] for my disagreement with your recent additions. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 09:44, 26 December 2006 (UTC) I thought of something else I failed to point out in my comments. I replied to your comments. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 10:14, 26 December 2006 (UTC) Hey, are you well rested enough to try to tackle explaining what you mean by study guide yet and how its different from a textbook? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[Image:Yin yang.svg|12px]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 15:48, 27 December 2006 (UTC) == Wishes! == Good ones for you and those you care about for 2007 - regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 17:37, 31 December 2006 (UTC) :And very nice user page BTW --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:58, 1 January 2007 (UTC) == Move (btw, txs for your support) == I'm off to bed now, and I will post a more extensive message later today, but can you provide me the logic of you being against a move (of the posts) ? I can see many valid points for a move and only one disadvantage (well a copy and paste would also work but a message that the conversation was moved and there is a problem with people archiving that kind of pages etc...) --[[User:Panic2k4|Panic]] 04:48, 1 January 2007 (UTC) : Good night! Hope you sleep well, and happy new years! I'll be going to bed soon too. : I agree that it is a good idea to copy and paste the conversation from the main page to a more appropriate talk page. Please feel free to do so. But I also advocate leaving the conversation in its original place with (1) a link to direct users to the new place where you paste it and (2) a link back to its original spot from the the new spot. That way the context of the original conversation is not lost and it can continue (as it seems it will) in a more appropriate spot. : And no problem for the support. :D I agree with some of your reasoning and conclusions. I especially agree with (1) what I perceive to be your resistance to hastily creating policies just for the sake of creating policies and (2) what I perceive to be your recognisal that there is a lot of pushing and shoving by some admins to pass policies and make decision where there is not exactly consensus. : Again, have a Happy New Years! Best wishes to you and yours! [[User:Iamunknown|User:Iamunknown]] 05:46, 1 January 2007 (UTC) I hope you also passed into a marry New Year... ''Move vs Copy-paste'' If one moves a discussion all intervening parties are automatically informed that a changes has occurred, as the text will be missing, not so on copy-paste, on a move all not productive text is removed to a dedicated forum (generating an aggregation of information on the same topic without leaving breadcrumbs all over), the other problem is the achieving of duplicated text (on pages that do archive discussions), the other point you raise are similar to both situations you could propose a guideline that would address this kind of problem, (for instance remember my talk page) I only archive post that I think will have relevance in the future, if someone posts on my talk, I probably will move the post to his talk and reply there (as he gets informed on logon of a new message) and star monitoring his talk page for subsequent replies. --[[User:Panic2k4|Panic]] 04:25, 2 January 2007 (UTC) : You may, theoretically, do whatever you want to on your talk page, as it is your talk page. I am currently opposed to moving text around ''en masse'' from other pages, however, because it separates the discussion from the context and is unnecessary. Specifically, while all involved parties are automatically informed that a change has occurred if the text is moved to a dedicated forum, they are also automatically informed that a change has occurred if a conspicuous link is appended to the original discussion directing them to the new forum. I would prefer and encourage the latter as it creates the least change. It is the path of least resistance. &mdash; [[User:Iamunknown|User:Iamunknown]] 06:14, 2 January 2007 (UTC) == Re: [[User:Flonejek]] == Sorry about the late reply. I had sent this user an email in the past when the whole image deletion thing started. He replied saying that all his images had been created by himself, and that they could be licensed appropriately. He seemed like he was on the level, but sometimes I can be too trusting. If you have suspicions about the images, feel free to mark them for deletion. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:09, 3 January 2007 (UTC) == Muslim saints etc == I actually agree with you but I was told (if not literally) that as user space "we don't care" (that isn't the only one I find suss either!). I'll leave it and we'll see what happens if that is ok? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:34, 3 January 2007 (UTC) :BTW just noticed what you did to the VfD template - excellent thanks --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:36, 3 January 2007 (UTC) : To be honest, I didn't realise I was editing user space. I thought it was article space. Leaving it is probably the best decision. &mdash; [[User:Iamunknown|User:Iamunknown]] 20:24, 3 January 2007 (UTC) ::BTW I did blank stuff from both a user page and a user talk page - no one objected - you may wish to consider that? cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:27, 4 January 2007 (UTC) *reset & forget - someone deleted it! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:07, 4 January 2007 (UTC) == Having respect for your opinion == Would you look at [[Wikibooks:Administrators'_noticeboard#Closed_VfD_-_advice_please]] and comment if you see fit. Thanks & regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:27, 4 January 2007 (UTC) == You are quick! == A third message - [[Cycling round the world]], you beat me to it - in case I miss the reply, do let me know - thanks --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:59, 4 January 2007 (UTC) == Catching up <g> == Only to say I've enjoyed reading your postings in what was for me overnight. Much sense in a number of places. I may well follow some of them up when I wake up properly - regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:01, 7 January 2007 (UTC) : Thanks for your kind words. I am kind of dismayed with current events. When I first came back to Wikibooks it was easier to be involved with a lot of different aspects herein. But lately, so many huge policy discussions and users frustrated with each other and it seems like there is no time to do it all anymore. And if I try to be involved, then I can't actually contribute. Maybe that's the way it'll go. It certainly is that way on big projects like Wikipedia. : Oh, and a request: if you could look at [[:Category:NowCommons]] and delete a few images there. Especially the flags. They are driving me nuts, because I tagged them a while ago and they are still sitting there. I'm crazy like that. <code>:-D</code> : Again, thank you, [[User:Iamunknown|User:Iamunknown]] 10:29, 7 January 2007 (UTC) ::I'm with you on the frustration. Maybe like you conflict is the very last thing I seek anywhere. All I can say is hang in - your contributions have a value to the project (doesn't mean I agree with them all!). And yes I understand the deletion frustration - I'll go look and delete a bit later. Regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:33, 7 January 2007 (UTC) :::Done a bit with the broom. Need to clear the cache to see where I am up to but I will get back to them I promise you (I used to feel exactly the same!). On that subject - do point stuff out if you feel it is overlooked - there aren't that many active admin for quite a bit of work. And keep contributing - it is a "hard" world - only people can make it better </philosophy>! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 12:09, 7 January 2007 (UTC) == Staff lounge == When you are next in that frame of mind I'm sure some junk could be archived (kind of "you started it"!!). Regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:08, 7 January 2007 (UTC) : Thanks for the invitation and for cleaning up after my image tagging. I may take you up on that offer later, but now it is rather late and I am off to bed. Cheers, [[User:Iamunknown|User:Iamunknown]] 13:24, 7 January 2007 (UTC) ::No worries = BTW don't think bulk image deletion will happen until there is a licensed admin bot! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:35, 7 January 2007 (UTC) == I'll be back [[w:The Terminator|:-)]] == I don't have enough time to invest on Wikibooks. Unless all that I want to implement in Wikibooks somehow magically gets implemented by others (hint: it wouldn't as the thought processes of diff. people are diff.) and unless some natural factors affect me, I'll keep trying to return to Wikibooks. BTW I wonder why everyone keeps asking ''me'' to contribute, I'm sure my contribution so far has been nearly nothing, with so many others working on it. :-) -- [[User:Paddu|Paddu]] 19:44, 8 January 2007 (UTC) == Re:Metric units == I'm not saying you can't come up with a solution yourself. I'm trying to see what I can come up with, you are welcome to explore the situation yourself. We will likely need to combine our solutions to come up with something that is perfect. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 22:59, 12 January 2007 (UTC) == Cat images, etc. == Hi Iamunknown. Yup, those images need to be sourced. Unfortunately the same user had claimed PD on an image that was definitely not PD a few months ago as well. Someone left him a message about it two days ago... if he doesn't reply within a week or so they should probably be speedied. As a rule, we need to know the source for any image (fair use, PD, or otherwise). Just putting a tag on something doesn't do the trick unless it's being posted by the creator. Thanks for helping with the images! --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 00:51, 13 January 2007 (UTC) : It seems like a tag would be the trick. Either something is in the public domain because it "consists entirely of information that is common property and contains no original authorship" or it is not &mdash;&nbsp;[[User:Iamunknown|User:Iamunknown]] 00:57, 13 January 2007 (UTC) ::I had always assumed that as well, until I got more involved on commons. If it's not the uploader's own work, a link or proper citation of the original source is needed so that it's status can be verified. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 11:31, 13 January 2007 (UTC) == Image deletion question == Hi Iamunknown, I tagged an image as <nowiki>{{Nowcommons|ImageName.ext}}</nowiki>, but my question is if the same image is under two different licenses (this one was under PD on WB but GDFL on Commons), is it still OK to delete one and leave the other one? Also, is there any way to be SURE that it's the same image, other than inspection of dimensions and such? Thank you. [[User:Mattb112885|Mattb112885]] 01:26, 13 January 2007 (UTC) : I hadn't thought of it before, but you could easily compare them with an md5 hash program or a hex editor. I don't have one installed on my computer, but I was able to quickly get one at [http://www.sourceforge.net/ sourceforge] (here's my [http://sourceforge.net/search/index.php?words=md5&sort=group_ranking&sortdir=asc&offset=0&type_of_search=soft&form_cat=18 search]) (the first program on that list, MUSASH, is excellent). BTW, thanks for dealing with that image. I remember seeing it once and I don't know why I didn't tag it...[[User:Iamunknown|User:Iamunknown]] 01:48, 13 January 2007 (UTC) ::Or just use a [[w:diff]] program. -- [[User:Paddu|Paddu]] 08:53, 13 January 2007 (UTC) == [[Trinidadian English]] == Hi - I've closed this as Transwiki as that seems to be the consensus. However if you care to address the problem as your last posting on the VfD I feel that would be wise. Many thanks and regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:13, 13 January 2007 (UTC) == Naijigo + Cycling == The first was on my watch list anyway. Both now deleted. Be peaceful & if I can help let me know - regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:22, 14 January 2007 (UTC) :By the way "talking" to the con lag one would have been hard as they are IPs and more than one. Nothing at all came up on google when I checked yesterday - I just didn't have time to deal with it. Regards (& get some sleep!!) --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:52, 14 January 2007 (UTC) ::Thx for dealing with it and for your concern. [[User:Iamunknown|User:Iamunknown]] 13:12, 14 January 2007 (UTC) == I like what you are doing! == Some nice housekeeping going on - should help find stuff at least, then it can be dealt with - thanks --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:57, 15 January 2007 (UTC) :Just don't put me in a category - it doesn't work <g> - regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:37, 16 January 2007 (UTC) ::Ok <code>:-D</code> --[[User:Iamunknown|User:Iamunknown]] 19:38, 16 January 2007 (UTC) == From Wikilibros == Hello Iamunknown. I am a wikiescritor at the Spanish Wikibooks version. Currently, I am writing the English language book, which I am trying to write in English and Spanish (using a two-column format). Since I am not a native English speaker, I am sure that I am doing mistakes, especially those related to word misplacing and subject-verb agreement, problems that an English speaking person would notice just reading a page of the book. I think I also have a tendency to form sentences and phrases which a native English speaker would not say or will find weird. Hence, it would be great if you could take a look at the book. There are pages not written by me, but there is no problem with theme for they are in Spanish. Probably I will translate them or even replace them by pages with the format described above. Once you take a look at the book, you will see the way I work (or, because of the lack of material, get, at least, a little idea of it). I say that because, if you like it, I can help you somehow with the Spanish book here. I will be waiting your answer. Thank you. Your friend [[es:Usuario:alephcero|Alephcero]] ([[es:Usuario_Discusión:alephcero|Consultame]]). == XHTML images and files == Thanks for contacting me about those images and XHTML files. I'd like to license those under the public domain. However, I don't really know the exact procedure for doing so; could you do that? I don't check my user talk very frequently anymore (it was just a coincidence that I got your message), so respond to me at microdan -at- gmail -dot- com if there's a problem with this. [[User:LittleDan|LittleDan]] 19:49, 15 January 2007 (UTC) *Once again, I agree to license all of my XHTML-related works under the public domain. I have authored them myself. [[User:LittleDan|LittleDan]] 23:04, 21 January 2007 (UTC) == Thanks very much == You'd be surprised how much in the Ada.pdf is automatic from LaTeX however. Course, converting the document from wiki to LaTeX is the real issue, but its not like the precise locations are determined by me :-p. Actually, most of it is the default that LaTeX would do. --[[User:Dragontamer|Dragontamer]] == what's with all the user categories? == Just curious :). --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 01:26, 17 January 2007 (UTC) : I'm going through [[Special:Wantedcategories]]. I have a few different ideas about categorisation, but I need to know where everything is first. --[[User:Iamunknown|User:Iamunknown]] 01:29, 17 January 2007 (UTC) ::Cool! Cats are Very Good Thing, IMO :). --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 01:34, 17 January 2007 (UTC) == Oni == Good call. Didn't realize that book had all those pages under it at the time. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 02:54, 17 January 2007 (UTC) == Nosy == Cos I spotted it - the temp sysop thing is a very good idea - I wanted the same. BUT it is a real big deal to remove sysop status (even when folks are quite happy). --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:10, 18 January 2007 (UTC) :Have you had a look at [[v:Wikiversity:Candidates_for_Custodianship|the Wikiversity mentorship system]]? --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 13:46, 18 January 2007 (UTC) ::I haven't. I'd like to get involved at Wikiversity, but I honestly don't know where to start, nor if I could even help. Do you have any suggestions? --[[User:Iamunknown|User:Iamunknown]] 16:54, 18 January 2007 (UTC) :::Suggestion - yes - don't let Johnny poach you, stay here! <g>, BTW you have mail --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:13, 18 January 2007 (UTC) ::::Wikiversity is looking more for content than cleanup these days :). I was just meaning how the RFA's are done... rather than open votes, candidated are just adopted by a mentor for a month, then "confirmed" after a month by an open vote. The mentor is responsible for the candidate until the open vote, and would in theory request desysopping if the "trainee" went astray. It's worked pretty well so far, though of course there is a danger of cabalism. ::::OTOH, if you're interested in plants, maybe you'd consider contributing to the [[v:Bloom clock project|Bloom clock project]]? :-)--[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 19:46, 18 January 2007 (UTC) == Help page == When you are awake - can we work on the "what are we trying to provide help" on page. I feel this would help with the structure of pages that we would need for help/discussion/policy etc. Get the sleep tho & all the best --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:07, 20 January 2007 (UTC) == Idea on the Staff Lounge == Why not just create a Forum, a mailing list, or another form of mass communication? I understand we are a Wiki and all... but a public forum has its advantages. I'm just brainstorming here... but I really can't think of a massive disadvantage of a forum. --[[User:Dragontamer|Dragontamer]] 02:13, 23 January 2007 (UTC) == Re:Wikiproject Authority == My purpose for this is not to grant this particular wikiproject with any additional "authority" over this or that page, but instead to create a dedicated group of people who are willing to do it. The [[Wikibooks:Featured books]] page hasnt been maintained recently, especially now that we aren't doing BOTM or COTM anymore. It used to be that once a book won either set of voting, the name of that book would be added to the featured books page. If we aren't doing BOTM or COTM, we need a new mechanism for keeping this page up to date. Notice also that any wikibookian can be considered a member of any wikiproject, without having to "register" or anything. In other words, we can say that anybody who does update the featured books page can be considered a de facto member of that project. Also, the establishment of that wikiproject page as a centralized discussion area for maintaining the featured books list will only help to ease a process that had too many questions before. What we have now is: #a dedicated place for discussing these books, creating criteria, and voting #a place for people to get together as a community, instead of individuals just trying to promote their own books #a standardized mechanism for finding books, judging them, and advertising them The wikiproject has authority because the members have authority to make changes and '''be bold'''. If you don't like the wikiproject idea, i suggest you propose something better. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:06, 23 January 2007 (UTC) :If you don't like my solution to the problems, or if you think i've misdiagnosed the problems entirely, that's fine. I dont and cant expect everybody to agree with everything I do. If you are not interested in it, you certainly don't need to join ''any wikiproject'' at all. You are, however, still allowed to make changes to pages as you see fit, being a perfectly bold and good-natured wikibookian. My recent agenda is the creation and expansion of these new wikiprojects, and since they are based on volunteerism, I dont think we need to get any community concensus to establish them, or to maintain them. People join if they want, and dont join if they dont want, and it shouldnt change the ability of any wikibookian to accomplish any goal. Some people seem to think it would be helpful, and I agree. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:13, 24 January 2007 (UTC) == Proxy blocks... == Just saw your question to Derbeth... the account creation issue doesn't really matter, since you couldn't use an account from those IPs (they're fully blocked, both for named accounts and anons). See [[meta:WM:OP]] for details. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 20:07, 29 January 2007 (UTC) == Template:ASPCite == No. If it's a bother to have it template space I can userfy it, but ASP cite is where I'm listing citations for a chapter of the book, and the DSMCites follow the recommended verbiage for direct quoting the DSM for free usage. I'm in the act of researching for another burst of writing at the moment.--[[User:Elaragirl|Elaragirl]] 22:46, 29 January 2007 (UTC) : Na, it doesn't matter. Would you mind include it (not substitute it) somewhere, though? I occasionally work on [[Special:Unusedtemplates]], and it's one of the first I see. That was my only issue. And glad to see your back. :-D --[[User:Iamunknown|Iamunknown]] 01:59, 30 January 2007 (UTC) == Electronics Images == I'd be happy to take a look at these images for you. Small subsets of the untagged images are a managable problem, but as you are finding out yourself, tagging all the untagged images is a very large (and possibly overwhelming) problem. I think I should be able to take care of all these images, I think there might be suitable replacements on commons. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 13:58, 30 January 2007 (UTC) == Notes == I'm very agitated tonight, and I think that the more messages I write, the less friendly they will become. Before i send out any more emails or messages on this issue, I've solicited some opinions from other members, and am going to take some advice before I do anything else. On that note, what are your opinions on this matter? You and I tend to disagree so frequently, that you might bring a fresh perspective to the table. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 23:57, 30 January 2007 (UTC) : I agree that the current goings-on have made the atmosphere here at Wikibooks very tense and agitating. And honestly, I am unsure what the original scope or intent of the arbitration proceedings were. I read the correspondence on the mailing list archives and on various talk pages, but that didn't help out. It appears / I think that the whole process went much faster than Robert anticipated, and I agree that now it seems to be dragging on, particularly because Rob has not been around lately. : I do not hold anything against Robert. I do not think the arbitration proceedings were misguided. Robert recognized what he perceived to be a problem, and he tried to help out. He didn't want the proceedings to spill over into other domains, which I think was a good point. In the past, from what I have read, higher intervention from Jimbo was devastating. And from the number of Wikibookians at the beginning of 2006 compared with the number at the end of 2006, it certainly appears that was the case. : I just don't know what to do in regards to Panic's behavior. It is not inherently reprehensible, but it is at least socially reprehensible. To be blunt, he has made the working environment miserable: it is unfriendly, agitating, confusing, and frustrating for many people: for contributors to both C++ wikibooks that have existed, in particular darklama, James Dennett, and paddu; for administrators, including you, SBJohnny, darklama (again), Rob; and for the general wikibooks contributors, which at least I can attest to. : I don't want to step on Robert's toes, and so I don't think that the proceedings should be closed immediately. I don't think Panic would buy into that, even though the proposal you made is likely better than anything the arbitration proceedings will result in. And I cannot imagine what Robert will do when he comes back. From reading the mailing list, he appeared to hope that the issue would work itself out; well, it hasn't. Panic is as argumentative as ever and the proceedings have brought Wikibooks to a stand-still. : I probably shouldn't say this on-wiki, but here goes: If I had to make a choice, I think I might ban Panic indefinitely. He is a valuable and vigorous contributor. But there are (were) two valuable and vigorous contributors (James Dennett and darklama) who have been ousted and exhausted by him. I'd rather have two contributors than one. I wish I could believe that just working with Panic would work out. But I don't. People have tried talking to him, working with him, posting at this request for comment, and arbitrating. The preliminary results from the arbitration appear to say that '''none''' of these will work. : That being said, I do not think any action should be taken with at least talking to Robert. If he is willing to continue the arbitration, then he should. If his absence is at all indicative of an unwillingness to continue (which I highly doubt), then take whichever action you will. : Voilà...my thoughts. Finally. --[[User:Iamunknown|Iamunknown]] 03:32, 31 January 2007 (UTC) ::Thank you very much for the reply. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 03:52, 31 January 2007 (UTC) == RePanic == I wasn't afraid of it, i knew it was going to happen. I told rob when he started the arbitration that when panic didn't get his way, he was going to make an appeal to the next highest authority. I am confident, however, that the stewards won't take his side on any of this. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:19, 1 February 2007 (UTC) == re:Images == First, I am happy that you think I have the authority (or perhaps the "charm") to ask people to cease and desist whichever projects they have been working on. I do understand your frustration with the whole image problem. And while we are on the subject, I would like to personally thank you for your efforts in this area. It's a project that is as tedious as it is unglamorous, and you certainly deserve some sort of pat-on-the-back, or a barnstar, or whatever it is that we give each other as a sign of respect. I'll start the crusade against the de-linking ASAP. Good luck. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:21, 2 February 2007 (UTC) == Apologies == I would like to apologise for any extra work that i may have caused you with my removal of images from the freeware pages. I was unaware of any cleanup project regarding this and was simply attempting to help clear the backlog of images that are copyrighted. Once again, my apologies. [[User:Urbane User|<b>Urbane User</b>]] [[User talk:Urbane User|<span style="color: green;"><small>(Talk)</small></span>]] [[Special:Contributions/Urbane_User|<span style="color: green;"><small>(Contributions)</small></span>]] 12:05, 3 February 2007 (UTC) == Re:Notes and Images == I share your frustration in many of these issues, and before I try and give you any answers or solace, I would like to remind you that you are just a volunteer here. Even though we all have great visions and plans for this place, if you stress yourself out, burn out, and stop contributing (i've seen it many times before), all your hard work and the time you spent stressed out and frustrated will have been wasted. In short, don't worry too much, and don't work yourself too hard!! I agree with you about the frustration in not having a finite image policy (or even a policy that has rules, and not just helpful tips) is a big problem, and one that this community has never been eager to address. The issue of fair use is a difficult one as well, although I have very mixed opinions about it. I think that fair use images are a bad idea, because of the extra licensing and permissions that need to be worried about. However, fair use text excerpts serve an important part in many books, especially annotated texts. All things considered, I would like to mandate that ''all images must be uploaded to commons'', and that no images should be allowed to be uploaded here. I doubt highly that such a rule will ever be accepted here, no matter how many problems it would solve in the present and the future. As to Javascript, I would not call myself an "expert" on the topic, and I might not even go so far as to call myself "adept", "proficient", or even "literate" in Javascript. What little JS I've been able to write was typically heavily adapted from scripts that other people have written, with a little improvisation drawing from my experience programming Java and C++. Anything I can write, you can likely write faster and better. If you absolutely need help with some Javascript, you might do well to ask [[User:Darklama]]. He's helped me with many of my scripts. If you need anything else, please don't hesitate to ask. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 03:54, 5 February 2007 (UTC) == [[:Image:Collapse.gif]] == G'day mate, what are your thoughts on this image? I thought maybe it was a {{tl|free screenshot}}, but it has text on it (really basic, generic PHP, but still, text that someone's typed in). Similarly, [[:Image:Fig2.gif]] which is further down the [[PHP fhp - what you'll need|same page]]. Also, any further news on [[w:Template:GFDL-presumed]]? [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 09:27, 5 February 2007 (UTC) : From my understanding, because Notepad++ is licensed for use under GPL, the interface, icons, etc. that are produced ''solely'' by the program (as in when you first load the program) are also under the GPL. (It could get tricky that this program is programmed with Visual.net and compiled with a Microsoft-owned compiler, but I would recommend safely assuming that we won't be held liable.) : The insignificant but non-software related edits (the arrows, etc.) could be licensed under any license, but I think we could justify licensing them with PD-ineligible ''unless'' we want to adopt Commons' "best practice" policy of ''demanding'' sources even when the image is obviously ineligible for copyright (which I would approve of). : So in regards to Image:Collapse.gif, if the collapsing tree is not a product of the native Windows functions, I think that it would be licensed under GPL for the interface. The manually-added arrows and text would be PD-ineligible. We should consider recreating it and reuploading it, though, so we can explicitly release rights. (I'll do it later this week if I have time unless you want to.) : I don't know about Image:Fig2.gif. I think that if the interface is specifically the product of a Microsoft product (which I think it is), it would qualify as fair use. : I think the fair use license you gave [[:Image:Npp.logo2.gif]] is appropriate. I looked through the entire Notepad++ CVS at Sourceforge, downloaded the source to double check, and installed the program: the logo from the website is not used in any fashion in the program. And I can find no evidence on the website that the logo is licensed for free use. : On Template:GFDL-presumed, I just haven't copied it yet. I'll do that right now. I hope it won't cause a stir with other users. Whiteknight and darklama were the only folks on IRC when I asked about it. I'll just do it and see where we go from there. Finally, sorry for such a long reply. :( --[[User:Iamunknown|Iamunknown]] 04:51, 7 February 2007 (UTC) ::Firstly, I don't think that the compiler has anything to do with the licensing of screenshots of the text editor - Notepad++ is licensed by GPL, which should be good enough. ::Secondly, it sounds like maybe you have the two images confused with each other. Collapse is a screenshot of Notepad++ showing some trivial PHP code in the editor, and demonstrating the .NET-style collapsing contexts, whereas Fig2 is a screenshot of some folders in the Windows Explorer, either directly in Windows or in a Save As dialog window within Notepad++. ::The issue with Collapse is whether there is a problem because of the code shown. The code in question is completely trivial PHP, but previous chats we've had led me to think that maybe that doesn't matter here &ndash; which is basically where my question was going: is this code trivial enough to allow the screenshot to be classed as free under GPL, or does it need a separate license? ::I reckon that the Fig2 image should be fair use, but you may be right about the annotations. I won't get in your way if you want to recreate it before the weekend, but if you don't, it's mine on Saturday (Aussie time)! ::I'm looking forward to using GFDL-presumed, especially on the many chemistry-related images, and some electronic circuits. I reckon that it makes sense. If it gets a knock, then I guess Visio will be busy again... ::And don't worry, I prefer responses with detail in them than something too terse to convey any meaning :-) [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:19, 7 February 2007 (UTC) :::Here goes: :::# Robert and others have mentioned before that owner of the copyrights to a compiler technically own part of the rights to the compiled program and thus part of the rights to the program output. I'd have to find the case citations they mentioned. It is ridiculous, however, that we would be held liable for distributing otherwise free software that was compiled with a non-free compiler. :::# Let me clarify regarding Image:Collapse.gif. If the "+" and "-" graphics are part of the native Windows interface, then the screenshot would be in part fair use. I am, however, unsure whether the collapsing lines (not tree) are part of the native Windows interface. If the collapsing lines and the associated iconography are freely licensed, then the screenshot at large would be licensed under the GNU GPL license, and the trivial PHP code and added arrow would be licensed under whatever license the licensor decided (although IMO it is ineligible for copyright). :::# (see above) :::# Regarding Image:Fig2.gif, a separate license would need to be specified for the native Windows interface (fair use) and then added arrows (PD-ineligible or PD/PD-user/PD-self). :::# I am still trying to deprecate the GFDL-presumed template, but I don't want the untagged images hanging over my/your/Wikibooks' head in the meantime. :::Best, [[User:Iamunknown|Iamunknown]] 06:30, 7 February 2007 (UTC) ::::# I'd ignore such things, as they can be taken too far (e.g. what about the OS that the compiler was running on? etc.) ::::# The "+" and "-" graphics are not part of Windows ''per se'', but are part of the .NET support libraries; Notepad++ was written in .NET and uses its presentation services, which is where it borrows the collapsing contexts from. I guess that means "fair use" at best then. That aside, the code shown is the issue. If we need to have a license for it, then we are dependent on the original uploader to qualify the licensing situation and cannot help them in this instance. Thus, they must fix it or lose it. Since you've already installed Notepad++, do you fancy rebuilding this two-stage screenshot? ::::# see what above? :-) ::::# I guess one of us needs to rebuild Fig2 then. I'll do it Saturday unless you do it before then. ::::# GFDL-presumed is getting a good workout already. And rightly so, I reckon. ::::Oh, and I watchlist talk pages until a conversation is properly over, so no need to drop me a pointer on my talk page too. cheers, [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 06:46, 7 February 2007 (UTC) :::::# I will too. It gets ludicrously complex trying to decide who owns what rights, and there is little precedent to indicate the Wikimedia Foundation would be held liable. :::::# I'll do it tomorrow or Thursday. :::::# Point #2 on indent #3. :) :::::# Indeed. :::::# I've seen. ::::: Excellent. I wish others would too. :( --[[User:Iamunknown|Iamunknown]] 07:22, 7 February 2007 (UTC) (reset tab) Oh, and good night. Best, [[User:Iamunknown|Iamunknown]] 07:24, 7 February 2007 (UTC) :Nighties, I'm off to dinner soon. But a bit more GFDL-presuming to do first... :-) [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 07:26, 7 February 2007 (UTC) == subst == Is there a reason why you like to use subst for things like user templates on RFA? I find it quite annoying to see, edit with, and browse the logs of. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 02:14, 7 February 2007 (UTC) : I substituted the user templates on RFA because I think that the unsubstituted templates are an unnecessary load, however insignificant, upon the server. --[[User:Iamunknown|Iamunknown]] 04:22, 7 February 2007 (UTC) == New Media Art book == Hi, you commented on the New Media Art book (http://en.wikibooks.org/wiki/New_Media_Art) that I'm working on putting up on Wikibooks. I've been putting together a wiki-version of an academic art book called New Media Art, by Mark Tribe. Mark teaches an entire course based on the book at Brown University, and I know it is used in classes at other institutions. I started to put it up on wikibooks, since that seemed to be where it fit best (rather than wikipedia or wikiversity). You can see the content so far at: http://en.wikibooks.org/wiki/New_Media_Art. I was soon warned by two editors that it was not appropriate content -- that it was encyclopedic/macropedic and thus not a "textbook." Though the content of the book is structured in an encyclopedic way (a series of sections, each on a particular artist or artist group), it can still be considered an art historical text. The introduction, for instance, gives a broad overview of the New Media art tradition and ties together the artists discussed in the rest of the book. I've already been told that the content I've put up so far will probably be deleted. Where does this book belong, if not in wikibooks? Your help is greatly appreciated! I'm new to the whole wiki communication thing, but I think you can leave me a comment on my "talk" page: http://en.wikibooks.org/wiki/User_talk:Lblissett Thanks again. [[User:Lblissett|Lblissett]] 20:55, 8 February 2007 (UTC)Shane ==Abt Nepal Bhasa== Sorry for late information but I have tried to answer your questions related to Nepal Bhasa [[meta:Requests for new languages/Wiktionary Nepal Bhasa 2|here]]. Please feel free to ask more questions if required. Thank you.--[[User:Eukesh|Eukesh]] 15:24, 14 February 2007 (UTC) == [[:commons:Image:Roma2001-02.png]] == Hi, I found your request on it.wikipedia. I put the information on the original version uploaded on it.wikipedia (the image is still there). [[:it:Utente:Cruccone|Cruccone]] ==Main page== I have started a discussion about this at [[Wikibooks:Staff_lounge#Changes_to_main_page]] where it suggests [[Wikibooks:Nearly_complete]] as a main page. [[User:RobinH|RobinH]] 13:36, 18 February 2007 (UTC) == Any news? == On the wikijunior cat images?? I know you said you were contacting the uploader - thanks --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 16:20, 18 February 2007 (UTC) : No, I haven't received a reply since my second e-mail to him (I received a reply to my first). I'll start looking into other options. --[[User:Iamunknown|Iamunknown]] 19:03, 19 February 2007 (UTC) ::Thanks - I know it bugs you when stuff drags on - I'll not delete for now (doubt anyone other than Az will bother either). Let me know if I can help --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 19:26, 19 February 2007 (UTC) == Commons Ticker == Ihad brought up the idea of installing a commons ticker here some time ago, and the proposal was not met with much enthusiasm. I will take a look at it soon, and if it's not that big a deal, I will set it up soon. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 01:35, 19 February 2007 (UTC) :I'm reading over the checklist now, and If you would be willing to set up the necessary pages and templates, I can do the rest. I don't have time tonight (or tomorrow, most likely) to set up all the necessary pages, but I should have the time on IRC to get the ticker installed. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 01:39, 19 February 2007 (UTC) ::I'll do it later tonight. When I read that the admin would need to go on IRC, I thought of you, but then worried that it might be troublesome because Duesentrieb may live in Germany, i.e. the difference would be several hours. --[[User:Iamunknown|Iamunknown]] 01:56, 19 February 2007 (UTC) :::I'll take care of my part, regardless of the time-zone issues. I can be on IRC morning or night, if needed. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 02:04, 19 February 2007 (UTC) :You work very quickly! I will do what I can now, but I wont be on IRC until later this evening, so any steps that require IRC will be put off until then. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 14:49, 19 February 2007 (UTC) ::I'll add my name to the request too... I'll be on IRC on and off today. --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 16:40, 19 February 2007 (UTC) == Image Posted!! == First of all I'd like to thank you for preventing this image (conciertodeconciertos.jpg) form being erased. Even thought, I cannot tell the kind of permission the image has, so I ask you to help me please. My user address is juandv, and better for me if you kindly help me telling what to do in Spanish. Thanks. 21:15, 19 February 2007 (GMT -5) == Archive page (SL) == Excellent - thanks --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:07, 22 February 2007 (UTC) == qr-em == Removed mine - happy with your views (won't get wars from me!) but keep an eye I guess. Still looking forward to the explanation of the other one - offline will be fine --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:42, 3 March 2007 (UTC) :In view of the content of your email to me you may wish to explain this edit [http://en.wikibooks.org/w/index.php?title=User%3AHerbythyme%2FOver_EL_pages&diff=749656&oldid=747693], it seems to run contrary to something you said. I look forward to your response --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:11, 5 March 2007 (UTC) ::It does. I can offer several explanations, but they would only be excuses, and poor ones at that. Instead, I've reverted my edit and have begun my own page. --[[User:Iamunknown|Iamunknown]] 23:12, 5 March 2007 (UTC) :::Mail 2 --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:22, 7 March 2007 (UTC) == Lifespan == Sorry I did not remember to delete this module myself. I was demonstrating the page creation process for someone who would like to develop a Wikibook later on. It can certainly be deleted, and sorry again for my forgetfulness. [[User:PbakerODU|Pete]] 18:18, 4 March 2007 (UTC) == [[WB:RFA]] == I have re-nominated you for adminship, because it is my sincere belief that you deserve it. I hope that you accept your nomination this time. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 00:43, 5 March 2007 (UTC) == Re:Commons Ticker == I haven't heard a thing about it, i was checking Duesentribe's talk page every day for a while, but i've sort-of given that up. I'll check now and report back to you. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:35, 6 March 2007 (UTC) :There hasnt been a response on his talk page, and the request page seems to be stagnant. I'll post another message somewhere, but I dont know what else we can do. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 18:38, 6 March 2007 (UTC) == Image:Softbodytut.gif == I think i have sorted out the copyright problem, but im not sure so could you check for me. I can honestly say the image is my own work, made with the help of Blender3D -- [[User:Eb264|Eb264]] <small>([[User talk:Eb264|talk]])</small> --[[User:Eb264|Eb264]] 17:54, 13 March 2007 (UTC) == Telescope Making == Hello iamunknown. Where have I seen that moniker before? I thought I would post a quick note here just to let you know I am back and will be working on the Telescope Making book again. I have a draft of the first of the materials pages and once it is spell checked I will post it. The images seemed to read better, at least I thought so, than the formula wrapped oddly with text. It is really moot to me, just so the average reader can understand what I am trying to say. I will be posting pictures of the process of making the mirror. I had planned to use the PNG format as it is the smallest I have found. Will that work for you? I need to flesh out some of the earlier chapters in regards to the links explaining unknown topics. --[[User:Vorblesnak|Vorblesnak]] 19:15, 17 March 2007 (UTC) == Work done today on Telescope Making == I changed some of the edits you did with the formulas, leaving the formulas, they are nice, and moving the text away from them. I also posted the next section on finding the materials for the mirror. I tried to stay within the layout that you have started for the book. --[[User:Vorblesnak|Vorblesnak]] 21:14, 17 March 2007 (UTC) == Sysop == Due to your full support on [[WB:RFA]], you are now a sysop. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 13:27, 20 March 2007 (UTC) :Woot! Congrats Iamunknown! Let me know if you need help figuring out the new toys :). --[[User:SBJohnny|<span style="color: green;">'''SB_Johnny'''</span>]] | <sup>[[User talk:SBJohnny|<span style="color: green;">talk</span>]]</sup> 13:29, 20 March 2007 (UTC) ::The new tabs look weird. I guess I'll have to get used to 'em. <code>:-)</code> --[[User:Iamunknown|Iamunknown]] 20:44, 25 March 2007 (UTC) == Ooopsie == This is not a gripe, or criticism, but information and communication... but... I wish you hadn't done [http://en.wikibooks.org/w/index.php?title=Category:Wikipedia_templates_used_on_category_pages&action=history this!]-- any such 'Wikipedia' (Project name prefixed) category could have been (as is in process elsewhere, probably in Meta) more generally as <nowiki>[[Category:{{SITENAME}} templates_used_on_category_pages]]</nowiki>. But NBD... I'm sure you were just doing some cleanup tasks. I think I've seen your edit trails in other clean-up tasks and (I believe) in creations of other red linked categories I'd left red links pending a more stable picture ala the various sisters. [[W:WP:TSP|WikiProject template sharing]] hasn't even been announced because of such loose ends--''some sites get cranky'', in particular if you start messing with their categories <g>-- ''so I'm very glad it was you, rather than me.'' NBD-- let me be the first to congratulate you on your forthcoming adminship, and figure on deleting that once you get your sys-op bit. No hurry -- there never is off the main namespace pages of any wiki! (That whole set of templates needs overhauled, which process has been started in ones and twos, but is very back burner. Should be able to update the whole set by months end once categorization issues are addressed--the real hold up in all [[M:MP:TSP]] matters, which in turn is delayed by the new versions of {{tl|interwikitmp-grp}} and {{interwikicat-grp}}, again, in process. Hah! See, Haven't even imported the later here yet! See Meta's here: {{tlxm|interwikicat-grp}}. Being a mature long established sister, I was treading lightly, plus your general category names match very well with the set we're currently working with, and so forth, so there was little need.) As it turns out, TSP and I had the influence on Wikipedia to get many 'SITENAME' prefixed names 'Omitted' to enhance portability during the recent ''templates categories re-organization'' on WP, so this one is just going to be ''[[w:Category:Templates used in categories|Templates used in categories]]''... 'Templates used on category pages' is now both a combined soft and hard redirect pending the new category redirect system software that is in '{{wpd|Beta Test}}'. (Keeping track of seven sister's category usage is at times confusing, that's why the new templates will do that instead.) {{Tl|Commonstmp}} itself will be relatively unused for the most part hereafter, as {{Tl|interwikitmp-grp}} has the broader job. In the main, it will be relegated to tagging specialty templates that are used on the Commons and whichever sister sites has dual or at most three way needs. For example: {{tlxc|Middle Ages by region}} was just [http://commons.wikimedia.org/w/index.php?title=Template%3AMiddle_Ages_by_region&diff=4761894&oldid=4749894 converted] for selective and strategic tagging of categories and galleries on the Commons, whereas it is in wide use on Wikipedia where it originated. It may have some scope on Wikisource (I haven't looked into that yet), and perhaps someday, here, given enough source books. Hence it's not a good candidate for being interwikitmp-grp tagged at the moment. So that's what the older little tags will have as a new role in the scheme of things. I'd like to invite you into the TSP project. It's actually a bit past the time that I should involve others outside Meta/Commons/Wikipedia (though, that's a good start but for the contributors are 'occasional' and not heavily involved. Maybe they just have confidence in me? Nice thought, that! <G>) But help and local knowledge are certainly now needed, so how about it. From what I can see, the categorization of templates here is badly in need of some maintenance and systemization similar to that we just reorganized on Wikipedia (Many templates still need recatted, but the category structure is now in place, and sensible.) The other part of that is local knowledge of templates with wide applicability or potential is and would be very useful. You need not be a template guru (I'm not really) to be able to reason that a template might have a use on such and such sister site. No more do you have to be a genius to help document such tools, so that others can find them. The name of the game as far as I'm concerned is enhancing the productivity of other editors... a good thing that--we're all volunteering time after all, and helping people maximize there efforts helps the foundation's projects and other people -- both many times over. Not a bad thing at all. (Some irony here--this composed to you last week w/o save in this browser, before the imbroglio on the commons on linking categories, et. al.) ttfn // [[User:Fabartus|Fra]][[User talk:Fabartus|<span style="color: green;">nkB</span>]] 14:03, 20 March 2007 (UTC) == Just to remember you == [[Wikibooks:Policies and guidelines/Vote/Be Bold]] is running, try to cast your vote (a list of policies/guidelines status is available [[Wikibooks:Policies_and_guidelines/Proposed_reform]]. Txs. --[[User:Panic2k4|Panic]] 19:52, 25 March 2007 (UTC) : Hey, thanks Panic. A lot has happened here since I was last here. Time to dive back in! --[[User:Iamunknown|Iamunknown]] 20:45, 25 March 2007 (UTC) == Question == I was needing to add some chapter summaries to the book and to the printout version, but Template:Stage short is not wanted on the print out can't the template be changed so it doesn't get printed (the page is protected, and the template has not much value on a printed version of the text that is static)... --[[User:Panic2k4|Panic]] 18:59, 27 March 2007 (UTC) :{{done}} --[[User:Iamunknown|Iamunknown]] 19:12, 27 March 2007 (UTC) ::Sorry, there is a problem it now looks like ::text ::status ::text :: and before was: text status text (there are 2 new carriage returns/line feeds more) --[[User:Panic2k4|Panic]] 19:23, 27 March 2007 (UTC) :::Fixed. Sorry about that. --[[User:Iamunknown|Iamunknown]] 01:34, 28 March 2007 (UTC) ::::Txs, no problem but some books would have looked weird from a while :) --[[User:Panic2k4|Panic]] 01:37, 28 March 2007 (UTC) == stage short == Hi Iamunknown, Adding the div metadata thing to stage_short has caused it to plop down a carraige return after the stage icon. Any chance that could be addressed? I typically use the icon before the text it describes as it lines up nicer that way. Thanks in advance. -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 22:29, 27 March 2007 (UTC) : Oops. Looks like Panic said about the same thing. -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 22:31, 27 March 2007 (UTC) :: Fixed. Sorry. --[[User:Iamunknown|Iamunknown]] 01:34, 28 March 2007 (UTC) ::: Thanks! No worries! -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 01:37, 28 March 2007 (UTC) :::: Oops again. I'm still getting the extra CR's. See [[Adventist Youth Honors Answer Book/Nature]] for an example. -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 01:40, 28 March 2007 (UTC) ::::: Not for me. Try [{{fullurl:Adventist Youth Honors Answer Book/Nature|action=purge}} this link]. --[[User:Iamunknown|Iamunknown]] 01:41, 28 March 2007 (UTC) :::::: OK - I guess I had a cached copy or something. Thanks for fixing it. -- [[User:Jomegat|Jim Thomas (aka Jomegat)]] 03:36, 28 March 2007 (UTC) == email == I sent you an email, just trying to explain a few things. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 20:49, 28 March 2007 (UTC) == Personal Attacks == I am not sure about why I am the target for such huge personal attacks, particularly on my user page. Yes, I think there is a huge amount of misunderstanding going on at the present, and most of this is miscommunication. And it is my belief that it stems back to what happened with my getting involved with first getting involved with the arbitration process and then my backing Panic. This has come to the point that I'm not even really sure I want to stick around here on Wikibooks anymore. The one and only reason I would like to stay here is to perhaps take some of these arrows from these young hot heads and have them pointed at me instead of at somebody else, but something must be done about the civility of the discussions that are taking place here on Wikibooks. This simply must end somewhere. I don't know if this is going to require some outside intervention, or if this is going to be the tone of this project from now on. I know this is just a small handful of contributors here, and perhaps I should take that into perspective. Any effort you can do to inject some civility into these discussions and to try and discuss rational differences of opinion on the various issues that have been raised would be appreciated. In terms of dealing with the "ban on fair use", I did mis-read the date that the images needed to be deleted as 2007 instead of 2008, and I havn't been given a chance to apologize on that point. Philosophically, I also disagree with Whiteknight that we need to ban any fair use uploads to this project without a formal EDP in place, but I don't know how to express that opinion without causing a huge firestorm of discussion here either. I do realize that he acknowledges his mistake of modifying the proposed fair use policy in so drastic of a manner, and it appears that my understanding of his position on this issue may also be off. Anyway, you have been a voice of calm and reason throughout all of this, and I appreciate this moderate tone you have displayed. Other than reminding people to be civil in their discussions, I'm not asking anything more from you. --[[User:Robert Horning|Rob Horning]] 11:45, 29 March 2007 (UTC) : Robert, thank you for your kind note. I assumed that Whiteknight's note on your talk page was a culmination of a series of misunderstandings. In all my interactions with you and in reading your posts to various Wikimedia-related venues, I remain convinced that you have every intention to improve Wikibooks. Same with ever currently-active contributor on Wikibooks. While each individual may have his or her own opinion about editorial- and content-management, my wish is that we not let that get in between constructive dialogue. : I sometimes feel that by pointing out the subtle distinctions between ethical choices and opinions I am perceived as wikilawyering. That is not my intention. There is a very real distinction and, unless they are pointed out, one argument is severely weakened. If a group can agree on an ethical code then any unethical action is simply wrong; if a group disagrees on opinions unrelated to ethics then a given action is not necessarily wrong. : I also find the widespread mistrust of others' intentions both here and on Wikipedia disturbing. I have read multiple documents regarding the concept of "assume good faith", but feel that they fail to address what should be done. It is my opinion that every contributor who demonstrates that they intend to improve Wikibooks should not be deemed a vandal or a troll. I admit that I have grown tired in the past of Panic's actions. I regret that I have. Panic may be a tendentious editor, but the galvanizing calls that he is a "bad-faith editor," a "troll" or a "vandal" are, in my opinion, baseless. He has demonstrated that he has every intention to improve the C++ wikibook. : While there are certain benefits related to maintaining a small community such as at Wikibooks rather than a large community such as at Wikipedia, I find the drawbacks frustrating. At Wikipedia there are a variety of opinions and the variety of sensible opinions are rarely in a minority. Thus sensible people can disagree and not easily be shut down or insulted without rational discussion with other such people. Here at Wikibooks there are few active contributors to policy-related discussions and it seems that you, who maintain a different, valid and sensible but different opinion, are subject to personal attacks. I'm sorry that you are and I am sorry that I have not been around more often. I maintain what I consider to be valid opinions about proposed Wikibooks policies, philosophies and processes but have felt resistance since day one when I came back in November. : Robert, I would understand and respect your decision to leave if that is what you choose. I know that you have real-life obligations to deal with including jobs, family and society. But I hope that you do not decide to leave. I appreciate your knowledge of Wikibooks-history and your knowledge of copyright law. I appreciate your detailed posts and what I perceive as your support for a "Wikibooks is not ''just'' for textbooks" model. I am afraid that I will be the lone contributor who maintains a similar philosophy if you leave. : I hope that I may remain calm and reasonable. I find that I re-read many of my posts; sometimes I do not post what I first wrote up because I decide that it will either not help Wikibooks or it is unnecessary and will only serve to drive a wedge between relationships. And, again, thank you very much for your kind note. I will continue participating in discussions and, hopefully, bring them down to their proper level where opinions can be considered based on their merit and not be necessarily disregarded as "wrong". --[[User:Iamunknown|Iamunknown]] 06:56, 1 April 2007 (UTC) 50l8l08o3i8cdnovfg7axnw3ff82aw7 User talk:CommonsTicker 3 117963 4668386 1213074 2026-09-03T15:15:39Z ShakespeareFan00 46022 4668386 wikitext text/x-wiki '''''I'm a bot, I can't read!''' Please go to [[Wikibooks talk:CommonsTicker]] for discussion of the ticker page, to [[meta:User talk:Duesentrieb/CommonsTicker|CommonsTicker talk]] for feature requests, or contact [[w:de:Benutzer:Duesentrieb]] if this bot is misbehaving.'' ---- Hey there. No IRC cloak. <code>:-)</code> --[[User:Iamunknown|Iamunknown]] 21:52, 7 April 2007 (UTC) eto0ap2b17nj5sk9i0c6ejq0gzm0nsy Abstract Algebra/Quaternions 0 123378 4668488 4668129 2026-09-03T22:00:28Z Rgdboer 1021217 /* Quaternion algebras */ nss Historic instances, re Dickson recognition of split-quaternions 4668488 wikitext text/x-wiki {{TOC right}} The algebra of '''Quaternions''' is a structure first studied by the Irish mathematician [[w:en:William Rowan Hamilton|William Rowan Hamilton]] which extends the two-dimensional complex numbers to four dimensions. Multiplication is non-commutative in quaternions, a feature which enables its representation of three-dimensional rotation. Hamilton's provocative discovery of quaternions founded the field of [[Abstract Algebra/Hypercomplex numbers|hypercomplex numbers]]. Suggestive methods like dot products and cross products implicit in quaternion products enabled algebraic description of geometry now widely applied in science and engineering. ==Definitions== [[File:Inscription on Broom Bridge (Dublin) regarding the discovery of Quaternions multiplication by Sir William Rowan Hamilton.jpg|right|thumb|Quaternion plaque on Broom Bridge, Dublin, which says: {{center/top}} Here as he walked by<br>on the 16th of October 1843<br>Sir William Rowan Hamilton<br>in a flash of genius discovered<br>the fundamental formula for<br>quaternion multiplication {{math|1=''i''<sup>2</sup> = ''j''<sup>2</sup> = ''k''<sup>2</sup> = ''ijk'' = −1}} & cut it on a stone of this bridge {{center/end}} ]] A '''Quaternion''' corresponds to an ordered 4-tuple <math>q=(a,b,c,d)</math>, where <math>a,b,c,d\in\mathbb{R}</math>. A quaternion is denoted <math>q=a + b i + c j + d k</math>. The sum <math> b i + c j + d k</math> is called the '''vector part''' of ''q'', and ''a'' is the '''real part'''. Hamilton coined the term ''vector'' in this context. Subsequent developments have extended the usage of the term ''vector'' to any element of a linear space. The vectors in H form a 3-dimensional subspace ''V''. The set of all quaternions is denoted by <math>\mathbb{H}</math>. It is straightforward to define component-wise addition and scalar multiplication on <math>\mathbb{H}</math>, making it a [[Abstract Algebra/Vector Spaces|real vector space]]. Multiplication follows the rules of the "quaternion group" Q<sub>8</sub> = {1, -1, i, -i, j, -j, k, -k} that Hamilton carved into a stone of Broom Bridge, Dublin: :<math>i^2 = j^2 = k^2 = ijk = -1</math> The rules for the pairwise multiplication of <math>i</math>, <math>j</math>, and <math>k</math> are: :<math> ij=k,\ \ jk=i,\ \ ki=j </math> (positive cyclic products) :<math>ji=-k,\ \ kj=-i,\ \ ik=-j</math> (negative cyclic products). Using these, one can define a general rule for multiplication of quaternions. Because quaternion multiplication is ''not'' commutative, <math>\mathbb{H}</math> is a ''not'' a field. However, every nonzero quaternion has a multiplicative inverse (see below), so the quaternions are an example of a '''division ring'''. It is important to note that the non-commutative nature of quaternion multiplication makes it impossible to define the quotient <math>p/q</math> of two quaternions ''p'' and ''q'' unambiguously, as the quantities <math>pq^{-1}</math> and <math>q^{-1}p</math> are generally different. Like the more familiar complex numbers, the quaternions have a '''conjugation''', often denoted by a superscript star: <math>q^*</math>. The conjugate of the quaternion <math>q=a+bi+cj+dk</math> is <math>q^*=a-bi-cj-dk</math>. As is the case for the complex numbers, the product <math>qq^*</math> is always a positive real number equal to the sum of the squares of the quaternion's components. The '''norm ''' of a quaternion is the square root of <math>qq^*</math>. If ''pq'' is the product of two quaternions, then <math>(pq)(pq)^* = (p p^*)(q q^*),</math> implying that <math>\mathbb{H}</math> forms a [[Associative Composition Algebra|composition algebra]]. The multiplicative inverse of a non-zero quaternion <math>q</math> is given by :<math>q^{-1}=\frac{q^*}{qq^*}</math> where division is defined since <math>qq^* \ne 0.</math> Unlike in the complex case, the conjugate <math>q^*</math> of a quaternion <math>q</math> can be computed algebraically: :<math>q^*=-\frac{1}{2}(q+iqi+jqj+kqk)</math>. ==Versors and elliptic space== William Kingdon Clifford used Hamilton’s quaternions to explicate rotation geometry as an elliptic space with its own variety of lines, parallels, and surfaces. The ideas were reviewed in 1948 by Lemaitre and Coxeter and that sketch has these definitions: A '''versor''' is a quaternion of norm one, thus it lies on a 3-dimensional sphere found in the 4-space of quaternions. The versors are given by Euler's formula for complex numbers where the imaginary unit is taken from the unit sphere in the 3-space of vector quaternions: :<math>v = \cos c + s \sin c = e^{cs} , \ \ s^2 = -1 .</math> The '''distance''' between two versors ''u'' and ''v'' is <math>d(u,v) = \arccos (u v^* + v u^*)/2 .</math> A '''right parataxy''' on elliptic space is effected by multiplying on the right by a versor <math>v = e^{cs} .</math> Similarly a '''left parataxy''' arises from left multiplication. In recognition of his contribution to elliptic geometry, a parataxy is called a ''Clifford translation''. The '''general displacement''' of elliptic space is a combination of two parataxies, one left, one right:<math>x \mapsto u x v .</math> Note that if <math>u = v^* ,</math> then the real line in the quaternions is fixed and the displacement is a rotation of the 3-space of quaternion vectors. The term '''line''' is appropriated for elliptic geometry. These lines are ''not'' straight, but they are parametrized by real numbers. Each line is associated with a '''right versor''' like ''s'' when ''c'' = &pi;/2 in ''v''. Then <math>L = \{ e^{cs} : c \in R \}</math> is a typical elliptic line. It corresponds to the axis of the rotation :<math>x \mapsto e^{cs} x e^{-cx} .</math> Now for ''u'' not on ''L'', there are two '''Clifford parallels''' to ''L'' through ''u'': :<math>\{u e^{cs} : c \in R \}, \quad \{e^{cs} u : c \in R \} .</math> For fixed right versors ''r'' and ''s'', a Clifford surface can be formed as a union of Clifford parallels or as :<math>\{ e^{cs} e^{dr} : b, c \in R \} .</math> To form elliptic space from versors, two versors ''u'' and ''v'' are equivalent if ''u'' + ''v'' = 0. Modulo this equivalence, the versors, their algebra and geometry, represent elliptic space. ==Linear viewpoint== Quaternions may be represented by 2×2 matrices with complex number entries: the place of <math>i, j, k </math> is taken by these arrays: :<math>\begin{pmatrix} i & 0 \\ 0 & -i \end{pmatrix}, \quad \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix}, \quad \begin{pmatrix} 0 & i \\ i & 0 \end{pmatrix}.</math> One uses matrix multiplication to verify that these expressions obey the rules of presentation of Q<sub>8</sub>. M(2,C) denotes the full algebra of 2×2 complex matrices, which has eight real dimensions, and sustains a representation of <math>\mathbb{H}</math> as a four-dimensional subalgebra. The linear properties of <math>\mathbb{H}</math> and M(2,C) assure the fidelity of the representation once the copy of Q<sub>8</sub> has been identified. Quaternions, like other associative hypercomplex systems of the 19th century, eventually were viewed as matrix algebras in the 20th century. However, in 1853 Hamilton included biquaternions in his book of ''Lectures on Quaternions''. '''Biquaternions''' are quaternions with complex number coefficients, sometimes called ''complex quaternions''. Biquaternions form an algebra isomorphic to M(2,C). If the rows or columns of a matrix are proportional, then the [[Linear Algebra/Definition of Determinant|determinant]] is zero, and there is no inverse. Nevertheless, such matrices have been used in physical science to represent events on a light-path from the origin. Authors Silberstein and Lanczos refer to this algebra as the biquaternions, but other writers have abandoned the label: Elie Cartan used M(2,C) extensively in ''The Theory of Spinors'' (1938), and Wolfgang Pauli, in his matrix mechanics of the atom, caused himself to be associated with M(2,C). ===Pauli Spin Matrices=== Quaternions are closely related to the Pauli spin matrices of Quantum Mechanics. The Pauli matrices are often denoted as<br /> :<math>\sigma_1=\begin{pmatrix}0 & 1 \\ 1 & 0\end{pmatrix}</math> , <math>\sigma_2=\begin{pmatrix}0 & -i \\ i & 0\end{pmatrix}</math> , <math>\sigma_3=\begin{pmatrix}1 & 0 \\ 0 & -1\end{pmatrix}</math> (Where <math>i</math> is the well known quantity <math>\sqrt{-1}</math> of complex numbers) The 2×2 identity matrix is sometimes taken as <math>\sigma_0</math>. Thus <math>S</math>, the real linear span of the matrices <math>\sigma_0</math>, <math>i\sigma_1</math>, <math>i\sigma_2</math> and <math>i\sigma_3</math>, is isomorphic to <math>\mathbb{H}</math>. For example, take this matrix product: :<math>\begin{pmatrix}i & 0 \\ 0 & -i\end{pmatrix} \begin{pmatrix}0 & 1 \\ -1 & 0\end{pmatrix} = \begin{pmatrix}0 & i \\ i & 0\end{pmatrix}</math> Or, equivalently, &nbsp; <math>i\sigma_3 \ i\sigma_2 = i\sigma_1 .</math> All three of these matrices square to the negative of the identity matrix. If we take <math> 1=\sigma_0</math>, <math>i=i\sigma_3</math>, <math>j=i\sigma_2</math>, and <math>k=i\sigma_1</math>, it is easy to see that the span of the these four matrices is "the same as" (that is, isomorphic to) the set of quaternions <math>\mathbb{H}</math>. ==Exercises== # Using the presentation equations of Q<sub>8</sub>, write out the full product of two quaternions. In other words, given <math>q_1=a_1+b_1i+c_1j+d_1k</math> and <math>q_2=a_2+b_2i+c_2j+d_2k</math>, find the components of their product <math>q=q_1q_2 .</math> # Show the composition algebra property <math>(pq)(pq)^* = (p p^*) (q q^*) .</math> Hint: use [[w: Euler's four-square identity]]. ==Axial pencils== [[File:Sheaf_of_Planes.gif|thumb|right|250px|The axis of a pencil is the real axis in the 4-algebra]] Hamilton's quaternions provide a picture of a pencil of complex number planes that fill out his hyperspace. Another pair of pencils provide alternative descriptions of 4-space as made up of planar algebras: The hyperspace is <math>\reals^4</math> with the first coordinate taken as the real line, and as the axis of the various pencils. The Hamilton case uses the sphere of imaginary units :<math>S^2 = \{q \in H : q^2 = -1 \} = \{xi + yj + zk : x^2 + y^2 + z^2 = 1 \} .</math> Any pair of antipodal points on this sphere generates a plane isomorphic to the ordinary complex plane <math>\Complex .</math> The second and third pencils derive from the findings of James Cockle and Arthur Cayley. Cayley set up an arithmetic of matrix multiplication which has expedited modern science. For instance, the so-called imaginary units are represented by <math>\begin{pmatrix}0 & -1 \\ 1 & 0 \end{pmatrix}</math> which has multiplicative square equal to the negative of the identity matrix. But then there is also by <math>\begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix}</math> which generates an algebraic plane distinct from ordinary complex numbers. This algebra [[Associative Composition Algebra/Split-binarions|split-binarions]], has inverse proportion included as a structural feature, such as found in economics or spacetime. In fact, the Lorentz boost is exhibited by a split-binarion multiplication. The inherent relation was recognized in the 19th century by J. Cockle, W.K. Clifford, and A. Macfarlane in the English world and by some Serbians. The second pencil is an imaginary one without linear representation. As Hamilton had a sphere of imaginary units, Macfarlane would have a sphere of hyperbolic units ''u'' with ''u''<sup>2</sup> = +1. The full algebra of split-binarions is <math>A = \{ q = x + y u : x, y \in \reals \}</math> Any pair of elements that are polar opposite on this sphere generate a plane isomorphic to the split-binarions A. The 4-algebra containing this pencil is the '''hyperbolic quaternion''' algebra. As Oliver Heaviside and Willard Gibbs advocated a positive dot product for vectors, they have been associated with hyperbolic quaternions. When this algebra drew attention in the 1890s a "great vector debate" ensued in various publications including ''Nature''. When the failure of the algebra to satisfy the associative law of multiplication was noted, it was realized that no matrix representation would be found. Each plane of the pencil can represent a Lorentz boost. However, rotations of the vector subspace, an operation within the reach of Hamilton's structure, is beyond the means of hyperbolic quaternions, hence the Lorentz group cannot be represented with Macfarlane's algebra. The third pencil arises from both imaginary units and hyperbolic units as found in the ring of [[Abstract Algebra/2x2 real matrices|2x2 real matrices]]. In this figure there must be noted nilpotent matrices such as by <math>\begin{pmatrix}0 & 1 \\ 0 & 0 \end{pmatrix}</math> which correspond to [[Abstract Algebra/Shear and Slope|dual numbers]] in the matrix algebra. Such planes separate the complex and split-binarion planes, and are included in the pencil. The axis of the pencil is the line of matrices that are real multiples of the identity matrix. Over an alternate basis this ring is known as [[Associative Composition Algebra/Split-quaternions|split-quaternions]], and the pencil has three types of planar subrings. == Quaternion algebras == The real numbers are part of Hamilton's quaternions. An objective of abstract algebra is to show algebraic structures in their most general form. The real numbers satisfy the axioms of a field and they have other properties such as order and completeness. Given an arbitrary [[Abstract Algebra/Fields|field]] ''F'', it can be associated with an abstract algebra called a ''quaternion algebra'' as follows: The elements of a quaternion algebra are in the four-dimensional space over ''F'' : &nbsp;''V'' = ''F''<sup> 4</sup>. As in ''F'', there is a multiplicative identity 1 in ''V'', and hence a one-dimensional subspace <math>F \cdot 1.</math> The multiplication <math>\times</math> on ''V'' has the feature that basis vectors of the orthogonal complement of <math>F \cdot 1</math> in ''V'' are anticommutative. More particularly, with i and j perpendicular in this orthogonal complement of <math>F \cdot 1</math>, i j = &minus; j i. With k = i j, and perpendicular to the plane of i and j, associativity of multiplication implies jk = j i j = &minus; i j j = &minus;k j, and k i = i j i = &minus;i k, so k also anticommutes with i and j. The multiplication on ''V'' is determined by multiplication on its basis vectors. That multiplication is not commutative (due to anticommutivity) and includes the negative for each basis vector: <math>B = \{ 1, -1, i, -i, j, -j, k, -k \} \subset V .</math> There are only two non-commutative groups of order eight: the quaternion group Q<sub>8</sub> and the dihedral group of symmetries of a square figure D<sub>4</sub>. Thus, for any field ''F'', there are two quaternion algebras over ''F'' corresponding to the selection of multiplication on ''B'' according to Q<sub>8</sub> or D<sub>4</sub>. === Historic instances === There was a glitch in an early presentation, with ''F'' being the field of real numbers, and the basis group confused. In 1878 [[w:W. K. Clifford]] nearly described representation of split-quaternions with matrices:<ref>[[w:W. K. Clifford]] (1878) [https://archive.org/details/elementsofdynami01clifiala/page/170/mode/2up ''Elements of Dynamic''], page 170 via Internet Archive</ref> He used ''K'' to express the imaginary unit <math>\begin{pmatrix}0 & 1 \\ -1 & 0 \end{pmatrix}</math>. The only flaw was a missing minus sign in the equation :<math>J K = \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix} \begin{pmatrix}0 & 1 \\ -1 & 0 \end{pmatrix} = \begin{pmatrix}-1 & 0 \\ 0 & 1 \end{pmatrix} = -I .</math> The inexplicable mistake in a case of a finite subgroup of the general linear group hindered understanding. Some clarity followed from a letter to the editor from [[w:C. G. Knott]]<ref>{{cite journal |first=C.G. |last=Knott |title=Recent Innovations in Vector Theory |journal=Nature |volume=47 |issue=1225 |pages=590–3 |year=1893 |doi=10.1038/047590b0 |bibcode=1893Natur..47R.590. |doi-access=free }} read before the Royal Society of Edinburgh 19 December 1892 and published in ''Proceedings''</ref> 1892) He reaffirmed Hamilton's products in this proposition: :If a 4-algebra on basis <math>\{1,\,i,\,j,\,k\}</math> is associative and off-diagonal products are given by Hamilton's rules, then <math>i^2=-\!1=j^2=k^2</math>. '''Proof:''' :<math>j = ki = (-ji)i = -j(ii)</math>, so <math>i^2 = -1</math>. Cycle the letters <math>i</math>, <math>j</math>, <math>k</math> to obtain <math>i^2=-1=j^2=k^2</math>. An other hitch is the notion of isomorphism of algebras, which should include preserving the field ''F''. Here [[w:Leonard Dickson]] ventured to nullify the difference between the complex algebras ( ''F'' = '''C''' ) over the two basis groups Q<sub>8</sub> and D<sub>4</sub>. He wrote in ''Linear Algebras''<ref>Leonard Dickson (1915) [https://archive.org/details/cu31924001557515/page/n25/mode/2up?q=quaternion Equivalence of complex quaternion and matric algebras], ''Linear Algebras'', page 15</ref> that the complex quaternion and matric algebras were equivalent. There is a real isomorphism between them, but that is not a complex isomorphism preserving the field. Nevertheless, Dickson was one of the first to acknowledge the existence of a real subalgebra of M(2,'''C''') other than quaternions. == References == {{Reflist}} {{Subject|Abstract Algebra}} 9uxx15hwntm0iln2qwesajwmf63jyh4 User talk:Bigrabid 3 128137 4668302 4647908 2026-09-03T13:38:47Z ShakespeareFan00 46022 4668302 wikitext text/x-wiki ==Wikimedia Pennsylvania== Hello there! I'm writing to inform you that we are now forming the first local [[m:Wikimedia chapters|Wikimedia Chapter]] in the United States: [[m:Wikimedia Pennsylvania|Wikimedia Pennsylvania]]. Our goals are to perform outreach and fundraising activities on behalf of the various Wikimedia projects. If you're interested in being a part of the chapter, or just want to know more, you can: * Contact us on IRC at [irc://irc.freenode.net/#wikimedia-pa <code>#wikimedia-pa</code>] * Join our [http://lists.wikimedia.org/mailman/listinfo/wikimediapa-l mailing list] * Visit our blog at http://wmfpa.blogspot.com * Sign our list of [[m:Wikimedia Pennsylvania#Interested Participants|interested participants]] Thanks and I hope you sign up! '''[[User:Cbrown1023|<span style="color: green;">Cbrown1023</span>]]''' <small>'''[[User talk:Cbrown1023|<span style="color:#002bb8">talk</span>]]'''</small> 16:15, 12 July 2007 (UTC) lcou2pq4d5a6x0s1bc5gat30b7glmqa User talk:Bersumm 3 128138 4668301 4648957 2026-09-03T13:38:24Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668301 wikitext text/x-wiki ==Wikimedia Pennsylvania== Hello there! I'm writing to inform you that we are now forming the first local [[m:Wikimedia chapters|Wikimedia Chapter]] in the United States: [[m:Wikimedia Pennsylvania|Wikimedia Pennsylvania]]. Our goals are to perform outreach and fundraising activities on behalf of the various Wikimedia projects. If you're interested in being a part of the chapter, or just want to know more, you can: * Contact us on IRC at [irc://irc.freenode.net/#wikimedia-pa <code>#wikimedia-pa</code>] * Join our [http://lists.wikimedia.org/mailman/listinfo/wikimediapa-l mailing list] * Visit our blog at http://wmfpa.blogspot.com * Sign our list of [[m:Wikimedia Pennsylvania#Interested Participants|interested participants]] Thanks and I hope you sign up! '''[[User:Cbrown1023|<span style="color: green;">Cbrown1023</span>]]''' <small>'''[[User talk:Cbrown1023|<span style="color:#002bb8">talk</span>]]'''</small> 16:21, 12 July 2007 (UTC) 611irim8gc1am8ckm9nfawm0q2jm8rw User talk:DeLaughterDO~enwikibooks 3 128139 4668390 4643905 2026-09-03T15:17:44Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668390 wikitext text/x-wiki ==Wikimedia Pennsylvania== Hello there! I'm writing to inform you that we are now forming the first local [[m:Wikimedia chapters|Wikimedia Chapter]] in the United States: [[m:Wikimedia Pennsylvania|Wikimedia Pennsylvania]]. Our goals are to perform outreach and fundraising activities on behalf of the various Wikimedia projects. If you're interested in being a part of the chapter, or just want to know more, you can: * Contact us on IRC at [irc://irc.freenode.net/#wikimedia-pa <code>#wikimedia-pa</code>] * Join our [http://lists.wikimedia.org/mailman/listinfo/wikimediapa-l mailing list] * Visit our blog at http://wmfpa.blogspot.com * Sign our list of [[m:Wikimedia Pennsylvania#Interested Participants|interested participants]] Thanks and I hope you sign up! '''[[User:Cbrown1023|<span style="color: green;">Cbrown1023</span>]]''' <small>'''[[User talk:Cbrown1023|<span style="color:#002bb8">talk</span>]]'''</small> 16:29, 12 July 2007 (UTC) == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called DeLaughterDO. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name DeLaughterDO~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:04, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:52, 19 April 2015 (UTC) <!-- SUL post-rename notification --> 9ciw8x5g6bcxvebn6k6hnabuw9k69aa User talk:Coppro~enwikibooks 3 133612 4668387 2905589 2026-09-03T15:16:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668387 wikitext text/x-wiki == Welcome message == Hello, and '''[[Wikibooks:Welcome, newcomers|welcome]]''' to [[Wikibooks]]! Here are some tips to help you get started: * To learn the wiki-markup-language syntax, see [[Help:Editing]]. * You should sign your name on Talk and vote pages using four tildes, like this: &#126;&#126;&#126;&#126; **There is a box at the top of the edit window that will insert this, too; it looks like part of a signature. * Remember to conduct any editing experiments in the [[Wikibooks:Sandbox|sandbox]]. * You can tell the community something about yourself in your userpage. ** You can get to this page by clicking the tab at the top of the page labeled with your registered username. * If you are a '''Wikipedian''', see [[Wikibooks:Wikibooks for Wikipedians]] for a primer on how things work here (it's a little different). ** If you want to base your work here on materials from Wikipedia, please use [[WB:RFI]] (requests for importation) to bring the material over in compliance with the GFDL. * If you're an '''instructor''' and plan on using Wikibooks for a class project, see [[Wikibooks:Guidelines for class projects]] * Please say hello at the [[WB:SL|Staff Lounge]] with any questions or ideas. * Eventually, you might want to read the [[Wikibooks:Manual of Style|Manual of Style]] and [[Wikibooks:Policies and guidelines|Policies and Guidelines]]. ** Please take a look at [[Wikibooks:Naming policy]] before starting a new book. * Remember to maintain a [[Wikibooks:Neutral point of view|Neutral point of view]]. * Explore, [[Wikibooks:Be bold in updating pages|be bold in editing pages]], and have fun! You will find more resources in [[Wikibooks:Community Portal|Community Portal]]. If you want to ask a question, visit the [[Wikibooks:Study help desk|Study help desk]], the [[Wikibooks:Staff lounge|Staff lounge]], [[Wikibooks:IRC channels|IRC channel]] or ask me personally on my talk page. For site news, see the [[WB:BB|Bulletin board]]. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page. Good luck! --[[User:Panic2k4|Panic]] 18:10, 12 September 2007 (UTC) == Hello again... C++ Programming == About the moving of the pointers and arrays from the operators section... What the logic behind moving them out of the section (since they are operators)? I think I understand what irked you. Humm probably moving the [[C++ Programming/Operators/Pointers]] and [[C++ Programming/Operators/Arrays]] to a new location /Code/Types/ in the future... Introducing Arrays and pointers without explaining operators first can be problematic in helping to understand the overloading of of operators and how to work with those derived types. Check [[C++ Programming/Code/Variables]] at the end and at this location in the book it would be better to make a note that those types exist (they are on the table) and point to the section were they are introduced giving freedom to the reader to select skipping or waiting until they are presented. I also noted that you renamed the references given to the operators. I used the same that were referred on the table (I don't have any particular objection to your rename only about consistency, I will have to take a look on the standard to check how they are referred there, we should fallow as closely to the standard as possible...) I made minor edits (some corrections were beyond wording), moved the page (and reference section from another page) to keep up with the navigation, corrected the headers levels as it broke the TOC and restored the removed array page. (full [[C++ Programming/Chapter Fundamentals]] or specific section [[C++ Programming/Operators]] ) PS: You can reply here... --[[User:Panic2k4|Panic]] 05:52, 19 September 2007 (UTC) ---- Well, what happened was that after I improved the existing section, I realized that it was more of a description of how to use pointers. For instance, why is there a section on NULL pointers in the operators section? I'm not really familiar with the way wikibooks actually works (and the policy documents are horrible to navigate), so I did the best I could. I'm thankful that you came along and fixed it up. I don't take offense to any corrections you make, as you're much more familiar than I am with this. I think that the best way to do this is to start by moving the pointer and array descriptions into the variables page, and then having the operators cover the actual operations in-depth. The problem I have is with pointers being described in the operators section. In C++, IMHO, they're worthy of their own page. There are pointers to functions and pointers to members, and then the combination of the two. Maybe such an advanced page should follow classes, such that pointers-to-members can properly introduced. I'll continue to write about pointers to functions and member pointers at [[C++ Programming/Operators/Pointers/to functions]] and [[C++ Programming/Operators/Pointers/Member pointers]] respectively, since I can't do anything wrong there. [[User:Coppro|Coppro]] 20:38, 20 September 2007 (UTC) ---- Yup that was what I thought about the move to a specific page... The problem with writing anything about C++ is that at some points dependencies are very difficult to maintain in a logical way as to facilitate the learning of the language, introducing pointers or arrays without the understanding of the operators that serve to declare and access this "derived" types is my believe, cause more confusion. I have attempted to structure the book as a mirror of how I would have liked I had learned the language, breaking the pages in smaller section and on specific points/subject will enable cross link and readers to skip/jump to other section in this I think our efforts coincide the problem is were we think the subject should rest for your edits I think you would like to insert it directly on the variable section. What I prosed above (and with my edits) is mention this specific types and point to the operators section (or even better to a specific pages of each type), for instance how would you propose explaining the operator & without first covering operators in general? The same concept was what I proposed with [[C++ Programming/Operators/Pointers/to functions]] and [[C++ Programming/Operators/Pointers/Member pointers]] (names can be tweaked later, to functions and member functions would probably be better) the best place to "put" the text would probably be on the section dedicated to functions and classes, and reference those concepts on the pointers text (and on the functions also) pointing forward into the book. Do you agree or have a better solution that would keep some kind of logical structure to the covered subjects? --[[User:Panic2k4|Panic]] 22:30, 20 September 2007 (UTC) BTW if you can, please take a look into the reply I posted on [[Talk:C++ Programming/iostream]] maybe you can extend or correct some of the information I gave to that user... --[[User:Panic2k4|Panic]] 22:34, 20 September 2007 (UTC) I think that the best way to keep the structure would be to write about pointers in three places - 1) The variables page, where they can be introduced in a simple manner. 2) The operators page, where everything can be well-defined and worked on and 3) A new advanced pointers page where we could cover the uses of pointers and how they all interact. Other tidbits on pointers (like using the <code>-></code> operator) could also be put in the appropriate page (the page on classes for <code>-></code>, and the page on inheritance for <code>dynamic_cast</code>). It's also worth noting that member pointers do not have to be member function pointers. The use of member non-function pointers is extremely rare, but imagine if you are writing an RPG, and every monster has 6 stats, and each one can range from 1-99. Now, let's say that these are private. You could have a bunch of functions for each one (e.g. <code>getStr()</code>, <code>performStrCheck()</code>, <code>increaseStr()</code>). Instead, you could have a function returning a <code>const int Monster::*</code> for each stat, and then pass those around. In case it comes back to a function that requires modification (<code>increaseStat()</code>, for instance), you can make an asssertion that it is a valid stat (which gets removed during the release build), and then remove the const-ness via a <code>const_cast</code> and modify. This shrinks the code, and makes more complex relationships possible between classes. I unfortunately don't have that same dearth of knowledge as to the iostream answer. My best guess, though, would be that the <code><<</code> and <code>>></code> operators for primitives are actually performing the extraction or insertion. Most user-defined <code><<</code> and <code>>></code> operators (particularly <code><<</code>) are just transalting the streaming of one class into the streaming of all it's member variables. You can't do the same thing for an integer. == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Coppro. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Coppro~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:06, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:49, 19 April 2015 (UTC) <!-- SUL post-rename notification --> tc44v8nd7eh60ul1ahhdz8cc176gklm Wikibooks:Reading room/Administrative Assistance 4 140081 4668321 4668208 2026-09-03T14:03:55Z Codename Noreste 3441010 /* Md Akash Mia12 reported by MathXplore */ reply: {{done|Page deleted}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668321 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) 1s5cj1wfwhkr64rv6hyhimiq50y2qon 4668322 4668321 2026-09-03T14:04:13Z Codename Noreste 3441010 /* Mohansai00116 reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668322 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) mgj0xb0j5uxi2qxn58yakc6rjr63eqd 4668323 4668322 2026-09-03T14:05:00Z Codename Noreste 3441010 /* Fatemai6 reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668323 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) 4wo8c9wdf15kh8czz5jt353ejxz3p1h 4668324 4668323 2026-09-03T14:05:06Z Codename Noreste 3441010 /* Kamrulhasan147 reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668324 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) 38xgn4d3aqom148h9ehxtpyq5r1eh2z 4668325 4668324 2026-09-03T14:05:11Z Codename Noreste 3441010 /* Kamrulhasan142 reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668325 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) 3od5o1srbw4z7gfgfdq9xh824lt4h51 4668326 4668325 2026-09-03T14:05:17Z Codename Noreste 3441010 /* Twenty7incgs reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668326 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) cib9jj4lfbebb7yqaybgz71liyn6svb 4668327 4668326 2026-09-03T14:05:23Z Codename Noreste 3441010 /* Tailleash reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668327 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) sfazisxp5dp71r73rviuc84trrqqbii 4668328 4668327 2026-09-03T14:05:28Z Codename Noreste 3441010 /* Vapesitefiftybar reported by MathXplore */ reply: {{done}}. (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 4668328 wikitext text/x-wiki __NEWSECTIONLINK__ {{Discussion Rooms}} {{shortcut|WB:AN|WB:AA}} {{TOC left}} {{User:MiszaBot/config |archive = Wikibooks:Reading room/Administrative Assistance/Archives/%(year)d/%(monthname)s |algo = old(14d) |counter = 1 |minthreadstoarchive = 1 |minthreadsleft = 1 }} {{ombox|type=content|text='''To request a rename or usurpation''', go to the global request page at Meta [[meta:SRUC|here]].<br />''Please do not post those requests here!''}} {{Clear}} Welcome to the '''Administrative Assistance reading room'''. You can request assistance from [[WB:ADMIN|administrators]] for handling a variety of problems here and alert them about problems which may require special actions not normally used during regular content editing. Please be patient as administrators are often quite busy with either their own projects or trying to perform general maintenance and cleanup. You can deal with most vandalism yourself: [[Wikibooks:Dealing with vandalism|fix it]], then [[Wikibooks:Templates/User_notices|warn the user]]. If there is repeated vandalism by one user, lots of vandalism on a single page, or vandalism from many users, tell an admin here, or in [irc://irc.freenode.net/wikibooks #wikibooks] (say <code>!admin</code> to get attention). For more general questions and assistance that doesn't require an administrator, please use the [[WB:HELP|Assistance Reading Room]]. {{clear}} [[Category:Reading room]] == IntoAEC reported by MathXplore == * {{userlinks|IntoAEC}} Spam <!-- USERREPORTED:/IntoAEC/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:25, 19 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == CaribbeanMedicalSchools reported by MathXplore == * {{userlinks|CaribbeanMedicalSchools}} Spam <!-- USERREPORTED:/CaribbeanMedicalSchools/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:16, 26 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:27, 26 August 2026 (UTC) == Chzoraiz41 reported by MathXplore == * {{userlinks|Chzoraiz41}} Link spam, [[Special:AbuseLog/315229]] <!-- USERREPORTED:/Chzoraiz41/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 27 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:17, 27 August 2026 (UTC) == Gloriagulshan reported by MathXplore == * {{userlinks|Gloriagulshan}} [[:w:Wikipedia:Sockpuppet investigations/Kagoz]] ([[Special:Contributions/Tikapara]], [[Wikibooks:Reading_room/Administrative_Assistance/Archives/2025/September#Tikapara_reported_by_MathXplore]]), created page [[Introduction to Filmmaking]] Contributed by Ali Zulfikar Zahedi ([[:w:Ali Zulfikar Zahedi]], [[:w:simple:Ali Zulfikar Zahedi]]) <!-- USERREPORTED:/Gloriagulshan/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 03:56, 29 August 2026 (UTC) :I believe this page is intended as instructional material for learning filmmaking rather than as an encyclopedic article. I will revise the page to focus on practical filmmaking concepts, methods, and processes in accordance with the purpose of Wikibooks. [[User:Gloriagulshan|Gloriagulshan]] ([[User talk:Gloriagulshan|discuss]] • [[Special:Contributions/Gloriagulshan|contribs]]) 04:20, 29 August 2026 (UTC) : Cc: {{ping|SHB2000|MarcGarver}} [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 04:41, 29 August 2026 (UTC) ::I see the account is glocked, and there are no sleepers that aren't already locked, so nothing more to do. [[User:MarcGarver|MarcGarver]] ([[User talk:MarcGarver|discuss]] • [[Special:Contributions/MarcGarver|contribs]]) 11:18, 3 September 2026 (UTC) == Atlanticgym reported by MathXplore == * {{userlinks|Atlanticgym}} Link spam, [[Special:AbuseLog/315249]] <!-- USERREPORTED:/Atlanticgym/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:32, 29 August 2026 (UTC) :{{done}} --[[User:SHB2000|SHB2000]] ([[User talk:SHB2000|discuss]] • [[Special:Contributions/SHB2000|contribs]]) 12:35, 29 August 2026 (UTC) == Makowe2026 reported by Veritas Sapientiae == * {{userlinks|Makowe2026}} Spam <!-- USERREPORTED:/Makowe2026/ --> [[User:Veritas Sapientiae|Veritas Sapientiae]] ([[User talk:Veritas Sapientiae|discuss]] • [[Special:Contributions/Veritas Sapientiae|contribs]]) 13:53, 29 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 19:20, 29 August 2026 (UTC) == Abir077 reported by MathXplore == * {{userlinks|Abir077}} Link spam, [[Special:AbuseLog/315272]] <!-- USERREPORTED:/Abir077/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:07, 31 August 2026 (UTC) :{{done}} ―[[User:Koavf|Justin (<span style="color:grey">ko'''a'''<span style="color:black">v</span>f</span>)]]<span style="color:red">❤[[User talk:Koavf|T]]☮[[Special:Contributions/Koavf|C]]☺[[Special:Emailuser/Koavf|M]]☯</span> 12:46, 31 August 2026 (UTC) == Jeevandan26 reported by MathXplore == * {{userlinks|Jeevandan26}} Link spam, [[Special:AbuseLog/315288]] <!-- USERREPORTED:/Jeevandan26/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:14, 1 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 13:20, 1 September 2026 (UTC) == Mohansai00116 reported by MathXplore == * {{userlinks|Mohansai00116}} Link spam, [[Special:AbuseLog/315335]] <!-- USERREPORTED:/Mohansai00116/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:09, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:04, 3 September 2026 (UTC) == Fatemai6 reported by MathXplore == * {{userlinks|Fatemai6}} Link spam, [[Special:AbuseLog/315329]] <!-- USERREPORTED:/Fatemai6/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:10, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan147 reported by MathXplore == * {{userlinks|Kamrulhasan147}} Link spam, [[Special:AbuseLog/315327]], [[Special:Contributions/Kamrulhasan142]] <!-- USERREPORTED:/Kamrulhasan147/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:12, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Kamrulhasan142 reported by MathXplore == * {{userlinks|Kamrulhasan142}} Link spam, [[Special:AbuseLog/315295]], [[Special:Contributions/Kamrulhasan147]] <!-- USERREPORTED:/Kamrulhasan142/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:13, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Twenty7incgs reported by MathXplore == * {{userlinks|Twenty7incgs}} Link spam, [[Special:AbuseLog/315323]] <!-- USERREPORTED:/Twenty7incgs/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:14, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Tailleash reported by MathXplore == * {{userlinks|Tailleash}} Link spam, [[Special:AbuseLog/315318]] <!-- USERREPORTED:/Tailleash/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:15, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) == Md Akash Mia12 reported by MathXplore == * {{userlinks|Md Akash Mia12}} Link spam, [[Special:AbuseLog/315299]], [[Special:AbuseLog/315298]] <!-- USERREPORTED:/Md Akash Mia12/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 12:17, 2 September 2026 (UTC) : {{done|Page deleted}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:03, 3 September 2026 (UTC) == Vapesitefiftybar reported by MathXplore == * {{userlinks|Vapesitefiftybar}} Link spam, [[Special:AbuseLog/315338]] <!-- USERREPORTED:/Vapesitefiftybar/ --> [[User:MathXplore|MathXplore]] ([[User talk:MathXplore|discuss]] • [[Special:Contributions/MathXplore|contribs]]) 13:40, 2 September 2026 (UTC) : {{done}}. [[User:Codename Noreste|<span style="color: blue">Codename Noreste</span>]] /// [[User talk:Codename Noreste|⭐️✨]] 14:05, 3 September 2026 (UTC) 60s00syr5dhcnnumhqznq8qw5xtow42 Chess Opening Theory/1. d4/1...Nf6/2. Nc3 0 141461 4668558 4079464 2026-09-04T11:50:41Z JCrue 2226064 4668558 wikitext text/x-wiki {{Chess Opening Theory/Position |name=Indian defence |eco=[[Chess/ECOA|A45]] |parent=[[../|Indian defence]] }} == 2. Nc3 == This is a less common move, with lots of transpositional possibilities. Developing the queen's knight this early is unusual in 1. d4 openings because it prevents White from playing c4. The knight supports playing e4 next. This usually forces Black to play [[/2...d5|'''2...d5''']], to prevent 3. e4. If White plays 3. e4?! anyway, the game transposes into a Blackmar-Diemer gambit position after 3...dxe4. However, the main ways for White to continue are 3. Bg5, the Richter-Veresov attack, or 3. Bf4, the Rapport-Jobava London system. An advantage of these systems is that they may be played against 1...Nf6 or 1...d4. Other moves allow White to play 3. e4 and transpose into a 1. e4 opening. '''2...e6''' 3. e4 d5 [[Chess Opening Theory/1. e4/1...e6/2. d4/2...d5/3. Nc3/3...Nf6|transposes into a French defence]]. '''2...g6''' 3. e4 d6 [[Chess Opening Theory/1. e4/1...d6/2. d4/2...Nf6/3. Nc3/3...g6|transposes into the Pirc defence]]. '''2...c5?!''' is a Benoni-style move, although the game plays out differently because of White's knight's position, preventing c4 but supporting e4. After 3. d5 e6, 4. e4 is now possible, and if Black continues to approach this [[Chess Opening Theory/1. d4/1...Nf6/2. c4/2...c5/3. d5/3...e6|like a modern Benoni]], they may blunder 4...exd5?? 5. e5!<ref>4...exd5?? is the main move in the Lichess amateurs database; having been played over 350,000 times as of September 2026.</ref> (one line is 5...d4 6. exf6 dxc3? 7. Qe2+ Be7 8. fxe7 Qc7 9. bxc3 {{chess/not|+++}}). == Theory table == {{ChessTable}} {{Chess/theory table |line1=2...d5 3. Bg5 Nbd7 4. Nf3 h6 5. Bh4 e6 6. e3 Be7 |name1=Richter-Veresov attack |line2=2... ... 3. Bf4 e6 4. Nb5 Na6 5. e3 Be7 6. Nf3 O-O |name2=Rapport-Jobava London system |line3=2... ... 3. e4?! dxe4 |name3=Blackmar-Diemer gambit<br><small>(by transposition)</small> |line4=2...e6 3. e4 d5 |name4=French defence<br><small>(by transposition)</small> |line5=2...g6 3. e4 d6 |name5=Pirc defence<br><small>(by transposition)</small> |line6=2...c5 3. d5 g6 4. e4 d6 5. Nf3 Bg7 6. Bb5+ Bd7 7. a4 O-O |name6=Reversed Chigorin defence |line7=2. ... ... 3. ... e6 4. e4 exd5?? 5. e5 |name7=<small>(illustrative trap)</small> }} {{ChessMid}} ==References== {{reflist}} === See also === {{Wikipedia|Queen's Pawn Game}} {{ChessFooter}} brg4wa4n4cnyrijyq4p4b0bodficu7y User talk:Anonymouse 3 141609 4668240 4643740 2026-09-03T12:18:43Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668240 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Anonymouse!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 17:45, 31 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Welcome! == Welcome to Wikibooks:Chess, glad you joined. Please ask if there is anything that doesn't make sense. I will do my best to make it clear. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 12:10, 29 May 2008 (UTC) == English Defence == The English Defence or English Defense(American spelling) is different from the English opening, see [http://www.jeremysilman.com/book_reviews_jw/jw_english_defence.html] [http://www.chessworld.net/chessclubs/forums_thread_show_one_posteronleftstyle.asp?forumid=6012&ThreadID=4895975] [http://www.amazon.com/English-Defence-Daniel-King/dp/1857442954], [[w:English_Defence|English Defence]]. In wikibooks we have the page [[Chess/English_Defence]], it is not often played, not very good and not well known hence some confusion with the English Opening. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 12:13, 29 May 2008 (UTC) == [[Template:Elements of chess strategy/Navigation]] == Have created a navigator for the [[Elements of chess strategy]] book, that you might like to use. {{tlx|Elements of chess strategy/Navigation}} It's basically a copy of the navigator used in the Chess book, see for example it's used at the end of this page [[Chess/Playing_The_Game]]. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 22:03, 30 May 2008 (UTC) : Oh thanks. Never could have thought of that one myself. [[User:Anonymouse|Anonymouse--nerd and proud of it]] ([[User talk:Anonymouse|talk]]) 00:36, 31 May 2008 (UTC) : By the way, is there a way to redirect the "previous" and "next" subpage name links? They're both redlinks. ::The previous and next are the 2nd and third option on the navigator. ::Example <nowiki>{{Elements of chess strategy/Navigation|Pawn structure|Open lines}}</nowiki> [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 21:08, 25 June 2008 (UTC) == [[Chess Opening Theory/ECO index]] == Thanks for the effort your putting into [[Chess Opening Theory/ECO index]] I can only imagine how time consuming and tedious doing that can be. 21:09, 25 June 2008 (UTC) == Najdorf Book == Looking forward to your book on the najdorf. I'm sure that will be quite popular. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 21:15, 25 June 2008 (UTC) == Four Knights' Game ECO index == On [[Chess/ECOC]] moves don't seem correct for Four Knights' Game, Marshall Variation and Rubinstein Variation. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 13:41, 11 March 2009 (UTC) :Now fixed thanks to Oleander. [[User:SunCreator|SunCreator]] ([[User talk:SunCreator|talk]]) 12:49, 12 March 2009 (UTC) b2sij8cfne7ybwf2w205o789qni9id0 Vehicle Identification Numbers (VIN codes)/World Manufacturer Identifier (WMI) 0 142006 4668557 4668018 2026-09-04T11:02:09Z JustTheFacts33 3434282 /* List of Many WMIs */ 4668557 wikitext text/x-wiki ==World Manufacturer Identifier== The first three characters uniquely identify the manufacturer of the vehicle using the '''World Manufacturer Identifier''' or '''WMI''' code. A manufacturer that builds fewer than 1000 vehicles per year uses a 9 as the third digit and the 12th, 13th and 14th position of the VIN for a second part of the identification. Some manufacturers use the third character as a code for a vehicle category (e.g., bus or truck), a division within a manufacturer, or both. For example, within 1G (assigned to General Motors in the United States), 1G1 represents Chevrolet passenger cars; 1G2, Pontiac passenger cars; and 1GC, Chevrolet trucks. ===WMI Regions=== The first character of the WMI is the region in which the manufacturer is located. In practice, each is assigned to a country of manufacture. Common auto-manufacturing countries are noted. <ref>{{cite web | url=https://standards.iso.org/iso/3780/ | title=ISO Standards Maintenance Portal: ISO 3780 | publisher=[[wikipedia:International Organization for Standardization]]}}</ref> {| class="wikitable" style="text-align:center" |- ! WMI ! Region ! Notes |- | A-C | Africa | AA-AH = South Africa<br />BF-BG = Kenya<br />BU = Uganda<br />CA-CB = Egypt<br />DF-DK = Morocco |- | E, H-R | Asia | E=Russia<br />H = China<br />J = Japan<br />KF-KH = Israel<br />KL-KR = South Korea<br />L = China<br />MA-ME = India<br />MF-MK = Indonesia<br />ML-MR = Thailand<br />MS = Myanmar<br />MX = Kazakhstan<br />MY-M0 = India<br />NF-NG = Pakistan<br />NL-NR = Turkey<br />NS-NT = Uzbekistan<br />PA-PC = Philippines<br />PF-PG = Singapore<br />PL-PR = Malaysia<br />PS-PT = Bangladesh<br />PV=Cambodia<br />RA-RB = United Arab Emirates<br />RF-RK = Taiwan<br />RL-RN = Vietnam<br />RS-RT = Saudi Arabia<br />RU-RW = Russia<br />R1-R7 = Hong Kong |- | S-Z | Europe | SA-SM = United Kingdom<br />SN-ST = Germany (formerly East Germany)<br />SU-SZ = Poland<br />TA-TH = Switzerland<br />TJ-TP = Czech Republic<br />TR-TV = Hungary<br />TW-T2 = Portugal<br />UH-UM = Denmark<br />UN-UR = Ireland<br />UU-UX = Romania<br />U1-U2 = North Macedonia<br />U5-U7 = Slovakia<br />VA-VE = Austria<br />VF-VR = France<br />VS-VW = Spain<br />VX-V2 = France (formerly Serbia/Yugoslavia)<br />V3-V5 = Croatia<br />V6-V8 = Estonia<br /> W = Germany (formerly West Germany)<br />XA-XC = Bulgaria<br />XF-XH = Greece<br />XL-XR = The Netherlands<br />XS-XW = Russia (formerly USSR)<br />XX-XY = Luxembourg<br />XZ-X0 = Russia<br />YA-YE = Belgium<br />YF-YK = Finland<br />YS-YW = Sweden<br />YX-Y2 = Norway<br />Y3-Y5 = Belarus<br />Y6-Y8 = Ukraine<br />ZA-ZU = Italy<br />ZX-ZZ = Slovenia<br />Z3-Z5 = Lithuania<br />Z6-Z0 = Russia |- | 1-5 | North America | 1, 4, 5 = United States<br />2 = Canada<br />3 = Mexico<br />7F-70 = United States |- | 6-7 | Oceania | 6A-6W = Australia<br />7A-7E = New Zealand<br />Revised: 6A-6X = Australia<br />6Y-61 = New Zealand |- | 8-9 | South America | 8A-8E = Argentina<br />8F-8G = Chile<br />8L-8N = Ecuador<br />8S-8T = Peru<br />8X-8Z = Venezuela<br />82 = Bolivia<br />84 = Costa Rica<br />9A-9E, 91-90 = Brazil<br />9F-9G = Colombia<br />9S-9V = Uruguay |} {| class="wikitable" style="text-align:center" |- ! &nbsp; ! A ! B ! C ! D ! E ! F ! G ! H ! J ! K ! L ! M ! N ! P ! R ! S ! T ! U ! V ! W ! X ! Y ! Z ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! 0 |- | '''A''' || colspan="8" | South Africa || colspan="2" | Ivory Coast || colspan="2" | Lesotho || colspan="2" | Botswana || colspan="2" | Namibia || colspan="2" | Madagascar || colspan="2" | Mauritius || colspan="2" | Tunisia || colspan="2" | Cyprus || colspan="2" | Zimbabwe || colspan="2" | Mozambique || colspan="5" | ''Africa'' |- | '''B''' || colspan="2" | Angola || colspan="1" | Ethiopia || colspan="2" | ''Africa'' || colspan="2" | Kenya || colspan="1" | Rwanda || colspan="2" | ''Africa'' || colspan="1" | Nigeria || colspan="3" | ''Africa'' || colspan="1" | Algeria || colspan="1" | ''Africa'' || colspan="1" | Swaziland || colspan="1" | Uganda || colspan="7" | ''Africa''|| colspan="2" | Libya || colspan="6" | ''Africa'' |- | '''C''' || colspan="2" | Egypt || colspan="3" | ''Africa'' || colspan="2" | Morocco || colspan="3" | ''Africa'' || colspan="2" | Zambia || colspan="21" | ''Africa'' |- | '''D''' || colspan="33" rowspan="1" | |- | '''E''' || colspan="33" | Russia |- | '''F''' || colspan="33" rowspan="2" | |- | '''G''' |- | '''H''' || colspan="33" | China |- | '''J''' || colspan="33" | Japan |- | '''K''' || colspan="5" | ''Asia'' || colspan="3" | Israel || colspan="2" | ''Asia'' || colspan="5" | South Korea || colspan="2" | Jordan || colspan="6" | ''Asia'' || colspan="3" | South Korea || colspan="1" | ''Asia'' || colspan="1" | Kyrgyzstan || colspan="5" | ''Asia'' |- | '''L''' || colspan="33" | China |- | '''M''' || colspan="5" | India || colspan="5" | Indonesia || colspan="5" | Thailand || colspan="1" | Myanmar || colspan="1" | ''Asia'' || colspan="1" | Mongolia || colspan="2" | ''Asia'' || colspan="1" | Kazakhstan || colspan="12" | India |- | '''N''' || colspan="5" | Iran || colspan="2" | Pakistan || colspan="1" | ''Asia'' || colspan="1" | Iraq || colspan="1" | ''Asia'' || colspan="5" | Turkey || colspan="2" | Uzbekistan || colspan="1" | ''Asia'' || colspan="1" | Azerbaijan || colspan="1" | ''Asia'' || colspan="1" | Tajikistan || colspan="1" | Armenia || colspan="1" | ''Asia'' || colspan="5" | Iran || colspan="1" | ''Asia'' || colspan="2" | Turkey || colspan="2" | ''Asia'' |- | '''P''' || colspan="3" | Philippines || colspan="2" | ''Asia'' || colspan="2" | Singapore || colspan="3" | ''Asia'' || colspan="5" | Malaysia || colspan="2" | Bangladesh || colspan="10" | ''Asia'' || colspan="6" | India |- | '''R''' || colspan="2" | UAE || colspan="3" | ''Asia'' || colspan="5" | Taiwan || colspan="3" | Vietnam || colspan="1" | Laos || colspan="1" | ''Asia'' || colspan="2" | Saudi Arabia || colspan="3" | Russia || colspan="3" | ''Asia'' || colspan="7" | Hong Kong || colspan="3" | ''Asia'' |- ! &nbsp; ! A ! B ! C ! D ! E ! F ! G ! H ! J ! K ! L ! M ! N ! P ! R ! S ! T ! U ! V ! W ! X ! Y ! Z ! 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! 0 |- | '''S''' || colspan="12" | United Kingdom || colspan="5" | Germany <small>(formerly East Germany)</small> || colspan="6" | Poland || colspan="2" | Latvia || colspan="1" | Georgia || colspan="1" | Iceland || colspan="6" | ''Europe'' |- | '''T''' || colspan="8" | Switzerland || colspan="6" | Czech Republic || colspan="5" | Hungary || colspan="6" | Portugal || colspan="3" | Serbia || colspan="1" | Andorra || colspan="2" | Netherlands || colspan="2" | ''Europe'' |- | '''U''' || colspan="3" | Spain || colspan="4" | ''Europe'' || colspan="5" | Denmark || colspan="3" | Ireland || colspan="2" | ''Europe'' || colspan="4" | Romania || colspan="2" | ''Europe'' || colspan="2" | North Macedonia || colspan="2" | ''Europe'' || colspan="3" | Slovakia || colspan="3" | Bosnia & Herzogovina |- | '''V''' || colspan="5" | Austria || colspan="10" | France || colspan="5" | Spain || colspan="5" | France <small>(formerly Yugoslavia & Serbia)</small> || colspan="3" | Croatia || colspan="3" | Estonia || colspan="2" | ''Europe'' |- | '''W''' || colspan="33" | Germany |- | '''X''' || colspan="3" | Bulgaria || colspan="2" | Russia || colspan="3" | Greece || colspan="2" | Russia || colspan="5" | Netherlands || colspan="5" | Russia <small>(formerly USSR)</small> || colspan="2" | Luxembourg || colspan="11" | Russia |- | '''Y''' || colspan="5" | Belgium || colspan="5" | Finland || colspan="2" | ''Europe'' || colspan="1" | Malta || colspan="2" | ''Europe'' || colspan="5" | Sweden || colspan="5" | Norway || colspan="3" | Belarus || colspan="3" | Ukraine || colspan="2" | ''Europe'' |- | '''Z''' || colspan="18" | Italy || colspan="2" | ''Europe'' || colspan="3" | Slovenia || colspan="1" | San Marino|| colspan="1" | ''Europe''|| colspan="3" | Lithuania || colspan="5" | Russia |- | '''1''' || colspan="33" | United States |- | '''2''' || colspan="28" | Canada || colspan="5" | ''North America'' |- | '''3''' || colspan="21" | Mexico || colspan="5" | ''North America'' || colspan="1" | Nicaragua || colspan="1" | Dom. Rep. || colspan="1" | Honduras || colspan="1" | Panama || colspan="2" | Puerto Rico || colspan="1" | ''North America'' |- | '''4''' || colspan="33" rowspan="2" | United States |- | '''5''' |- | '''6''' || colspan="21" | Australia || colspan="3" | New Zealand || colspan="9" | ''Oceania'' |- | '''7''' || colspan="5" | New Zealand || colspan="28" | United States |- | '''8''' || colspan="5" | Argentina || colspan=2 | Chile || colspan="3" | ''South America'' || colspan="3" | Ecuador || colspan="2" | ''South America'' || colspan="2" | Peru || colspan="3" | ''South America'' || colspan="3" | Venezuela || colspan="1" | ''SA'' || colspan="1" | Bolivia || colspan="1" | ''SA'' || colspan="1" | Costa Rica || colspan="6" | ''South America'' |- | '''9''' || colspan="5" | Brazil || colspan="2" | Colombia || colspan="8" | ''South America'' || colspan="4" | Uruguay || colspan="4" | ''South America'' || colspan="10" | Brazil |- | '''0''' || colspan="33" rowspan="1" | |} ===List of Many WMIs=== The [[w:Society of Automotive Engineers|Society of Automotive Engineers]] (SAE) in the US assigns WMIs to countries and manufacturers.<ref>{{cite web | url=https://www.iso.org/standard/45844.html | title=ISO 3780:2009 - Road vehicles — World manufacturer identifier (WMI) code | date=October 2009 | publisher=International Organization for Standardization}}</ref> The following table contains a list of mainly commonly used WMIs, although there are many others assigned. {| class="wikitable x" style="text-align:center" |- ! WMI !! Manufacturer |- | AAA|| Audi South Africa made by Volkswagen of South Africa |- | AAK|| FAW Vehicle Manufacturers SA (PTY) Ltd. |- | AAM|| MAN Automotive (South Africa) (Pty) Ltd. (includes VW Truck & Bus) |- |AAP || VIN restamped by South African Police Service (so-called SAPVIN or AAPV number) |- | AAV || Volkswagen South Africa |- | AAW || Challenger Trailer Pty Ltd. (South Africa) |- | AA9/CN1 || TR-Tec Pty Ltd. (South Africa) |- | ABJ || Mitsubishi Colt & Triton pickups made by Mercedes-Benz South Africa 1994–2011 |- | ABJ || Mitsubishi Fuso made by Daimler Trucks & Buses Southern Africa |- | ABM || BMW Southern Africa |- | ACV || Isuzu Motors South Africa 2018- |- | AC5 || [[../Hyundai/VIN Codes|Hyundai]] Automotive South Africa |- | AC9/BM1 || Beamish Beach Buggies (South Africa) |- | ADB || Mercedes-Benz South Africa car |- | ADD || UD Trucks Southern Africa (Pty) Ltd. |- | ADM || General Motors South Africa (includes Isuzu through 2018) |- | ADN || Nissan South Africa (Pty) Ltd. |- | ADR || Renault Sandero made by Nissan South Africa (Pty) Ltd. |- | ADX || Tata Automobile Corporation (SA) Ltd. |- | AE9/MT1 || Backdraft Racing (South Africa) |- | AFA || Ford Motor Company of Southern Africa & Samcor |- | AFB || Mazda BT-50 made by Ford Motor Company of Southern Africa |- | AFD || BAIC Automotive South Africa |- | AFZ || Fiat Auto South Africa |- | AHH || Hino South Africa |- | AHM || Honda Ballade made by Mercedes-Benz South Africa 1982–2000 |- | AHT || Toyota South Africa Motors (Pty.) Ltd. |- | BF9/|| KIBO Motorcycles, Kenya |- | BUK || Kiira Motors Corporation, Uganda |- | BR1 || Mercedes-Benz Algeria (SAFAV MB) |- | BRY || FIAT Algeria |- | CA3 || MCV bus (Egypt) |- | DDY || Geyushi Motors (bus) (Egypt) |- | DF9/|| Laraki (Morocco) |- | EAA || Aurus Motors (Russia) |- | EAN || Evolute (Russia) |- | EAU || Elektromobili Manufacturing Rus - EVM (Russia) |- | EBE || Sollers-Auto (Russia) |- | EBZ || Nizhekotrans bus (Russia) |- | ECE || XCITE (Russia) |- | ECW || Trans-Alfa bus (Russia) |- | HAC || GAC Motor (Aion) |- | HA0 || Wuxi Sundiro Electric Vehicle Co., Ltd. (Palla, Parray) |- | HA6 || Jiangsu Niu Electric Technology Co., Ltd. (Niu) |- | HA7 || Jinan Qingqi KR Motors Co., Ltd. |- | HES || smart Automobile Co., Ltd. (Mercedes-Geely joint venture) |- | HGL || Farizon Auto van (Geely) |- | HGX || Wuling Motors commercial vehicle (Geely) |- | HHZ || Huazi Automobile |- | HJN || Nio, Firefly |- | HJR || Chery Commercial Vehicle (Anhui) Co., Ltd. Jetour made by Chery Commercial Vehicle |- | HJZ || Juzhen Chengshi van |- | HJ4 || BAW car |- | HLX || Li Auto |- | HL4 || Zhejiang Morini Vehicle Co., Ltd. <br />(Moto Morini subsidiary of Taizhou Zhongneng Motorcycle Co., Ltd.) |- | HRV || Beijing Henrey Automobile Technology Co., Ltd. |- | HT5 || Zhejiang Jianying Locomotive Co., Ltd. (motorcycle) |- | HVW || Volkswagen Anhui |- | HWM || WM Motor Technology Co., Ltd. (Weltmeister) |- | HXM || Xiaomi |- | HZ2 || Taizhou Zhilong Technology Co., Ltd (motorcycle) |- | H0D || Taizhou Qianxin Vehicle Co., Ltd. (motorcycle) |- | H0G || Wisdom (Fujian) Motor Co., Ltd. (bus) |- | JAA || Isuzu truck, Holden Rodeo TF, Opel Campo, Bedford/Vauxhall Brava pickup made by Isuzu in Japan |- | JAB || Isuzu car |- | JAC || Isuzu SUV, Opel/Vauxhall Monterey & Holden Jackaroo/Monterey made by Isuzu in Japan |- | JAE || Acura SLX made by Isuzu |- | JAL || Isuzu commercial trucks & <br /> Chevrolet commercial trucks made by Isuzu 2016+ & <br /> Hino S-series truck made by Isuzu (Incomplete Vehicle - medium duty) |- | JAM || Isuzu commercial trucks (Incomplete Vehicle - light duty) |- | JA3 || Mitsubishi car (for North America) |- | JA4 || Mitsubishi MPV/SUV (for North America) & Nissan Rogue PHEV '26 |- | JA7 || Mitsubishi truck (for North America) |- | JB3 || Dodge car made by Mitsubishi Motors |- | JB4 || Dodge MPV/SUV made by Mitsubishi Motors |- | JB7 || Dodge truck made by Mitsubishi Motors |- | JC0 || Ford brand cars made by Mazda |- | JC1 || Fiat 124 Spider made by Mazda |- | JC2 || Ford Courier made by Mazda |- | JDA || Daihatsu, Subaru Justy made by Daihatsu |- | JD1 || Daihatsu car |- | JD2 || Daihatsu SUV |- | JD4 || Daihatsu truck |- | JE3 || Eagle car made by Mitsubishi Motors |- | JE4 || Mitsubishi Motors |- | JF1 || ([[../Subaru/VIN Codes|Subaru]]) car |- | JF2 || ([[../Subaru/VIN Codes|Subaru]]) SUV |- | JF3 || ([[../Subaru/VIN Codes|Subaru]]) truck |- | JF4 || Saab 9-2X made by Subaru |- | JG1 || Chevrolet/Geo car made by Suzuki |- | JG2 || Pontiac car made by Suzuki |- | JG7 || Pontiac/Asuna car made by Suzuki for GM Canada |- | JGC || Chevrolet/Geo SUV made by Suzuki (classified as a truck) |- | JGT || GMC SUV made by Suzuki for GM Canada (classified as a truck) |- | JHA || Hino truck |- | JHB || Hino incomplete vehicle |- | JHD || Hino |- | JHF || Hino |- | JHH || Hino incomplete vehicle |- | JHF-JHG, JHL-JHN, JHZ,<br/>JH1-JH5 || [[../Honda/VIN Codes|Honda]] |- | JHL || [[../Honda/VIN Codes|Honda]] MPV/SUV |- | JHM || [[../Honda/VIN Codes|Honda]] car |- | JH1 || [[../Honda/VIN Codes|Honda]] truck |- | JH2 || [[../Honda/VIN Codes|Honda]] motorcycle/ATV |- | JH3 || [[../Honda/VIN Codes|Honda]] ATV |- | JH4 || Acura car |- | JH6 || Hino incomplete vehicle |- | JJ3 || Chrysler brand car made by Mitsubishi Motors |- | JKA || Kawasaki (motorcycles) |- | JKB || Kawasaki (motorcycles) |- | JKM || Mitsuoka |- | JKS || Suzuki Marauder 1600/Boulevard M95 motorcycle made by Kawasaki |- | JK8 || Suzuki QUV620F UTV made by Kawasaki |- | JLB || Mitsubishi Fuso Truck & Bus Corp. |- | JLF || Mitsubishi Fuso Truck & Bus Corp. |- | JLS || Sterling Truck 360 made by Mitsubishi Fuso Truck & Bus Corp. |- | JL5 || Mitsubishi Fuso Truck & Bus Corp. |- | JL6 || Mitsubishi Fuso Truck & Bus Corp. |- | JL7 || Mitsubishi Fuso Truck & Bus Corp. |- | JMA || Mitsubishi Motors (right-hand drive) for Europe |- | JMB || Mitsubishi Motors (left-hand drive) for Europe |- | JMF || Mitsubishi Motors for Australia (including Mitsubishi Express made by Renault) |- | JMP || Mitsubishi Motors (left-hand drive) |- | JMR || Mitsubishi Motors (right-hand drive) |- | JMY || Mitsubishi Motors (left-hand drive) for South America & Middle East |- | JMZ || Mazda for Europe export & Mazda 2 made by Ford Spain & Mazda 2 Hybrid made by Toyota Motor Manufacturing France |- | JM0 || Mazda for Oceania export |- | JM1 || Mazda car |- | JM2 || Mazda truck |- | JM3 || Mazda MPV/SUV |- | JM4 || Mazda |- | JM6 || Mazda |- | JM7 || Mazda |- | JNA || Nissan Diesel/UD Trucks (incomplete vehicle) |- | JNC || Nissan Diesel/UD Trucks |- | JNE || Nissan Diesel/UD Trucks (truck) |- | JNK || Infiniti car |- | JNR || Infiniti SUV |- | JNX || Infiniti incomplete vehicle |- | JN1 || Nissan car & Infiniti car |- | JN3 || Nissan incomplete vehicle |- | JN6 || Nissan truck/van & Mitsubishi Fuso Canter Van |- | JN8 || Nissan MPV/SUV & Infiniti SUV |- | JPA || International Trucks made by Nissan Diesel (incomplete vehicle) |- | JPB || International Trucks made by Nissan Diesel (tractor truck) |- | JPC || Nissan Diesel/UD Trucks |- | JPE || International Trucks made by Nissan Diesel (truck) |- | JP3 || Plymouth car made by Mitsubishi Motors |- | JP4 || Plymouth MPV/SUV made by Mitsubishi Motors |- | JP7 || Plymouth truck made by Mitsubishi Motors |- | JR2 || Isuzu Oasis made by Honda |- | JSA || Suzuki ATV & '03 Kawasaki KFX400 ATV made by Suzuki, Suzuki car/SUV (outside N. America), Holden Cruze YG made by Suzuki |- | JSK || Kawasaki KLX125/KLX125L motorcycle made by Suzuki |- | JSL || '04-'06 Kawasaki KFX400 ATV made by Suzuki |- | JST || Suzuki Across SUV made by Toyota |- | JS1 || Suzuki motorcycle & Kawasaki KLX400S/KLX400SR motorcycle made by Suzuki |- | JS2 || Suzuki car |- | JS3 || Suzuki SUV |- | JS4 || Suzuki truck |- | JTB || Toyota bus |- | JTD || Toyota car |- | JTE || Toyota MPV/SUV |- | JTF || Toyota van/truck |- | JTG || Toyota MPV/bus |- | JTH || Lexus car |- | JTJ || Lexus SUV |- | JTK || Toyota car |- | JTL || Toyota SUV |- | JTM || Toyota SUV, Subaru Solterra made by Toyota |- | JTN || Toyota car |- | JTP || Toyota SUV |- | JT1 || [[../Toyota/VIN Codes|Toyota]] van |- | JT2 || Toyota car |- | JT3 || Toyota MPV/SUV |- | JT4 || Toyota truck/van |- | JT5 || Toyota incomplete vehicle |- | JT6 || Lexus SUV |- | JT7 || Toyota bus/van |- | JT8 || Lexus car |- | JW6 || Mitsubishi Fuso division of Mitsubishi Motors (through mid-2003) |- | JYA || Yamaha motorcycles |- | JYE || Yamaha snowmobile |- | JY3 || Yamaha 3-wheel ATV |- | JY4 || Yamaha 4-wheel ATV |- | J81 || Chevrolet/Geo car made by Isuzu |- | J87 || Pontiac/Asüna car made by Isuzu for GM Canada |- | J8B || Chevrolet commercial trucks made by Isuzu (incomplete vehicle - medium duty) |- | J8C || Chevrolet commercial trucks made by Isuzu (truck) |- | J8D || GMC commercial trucks made by Isuzu (incomplete vehicle - medium duty) |- | J8T || GMC commercial trucks made by Isuzu (truck) |- | J8Z || Chevrolet LUV pickup truck made by Isuzu (truck) |- | KF3 || Merkavim (Israel) |- | KF6 || Automotive Industries, Ltd. (Israel) |- | KF9/004 || Tomcar (Israel) |- | KG9/002 || Charash Ashdod (truck trailer) (Israel) |- | KG9/004 || H. Klein (truck trailer) (Israel) |- | KG9/007 || Agam Trailers (truck trailer) (Israel) |- | KG9/009 || Merkavey Noa (trailer) (Israel) |- | KG9/010 || Weingold Trailers (trailer) (Israel) |- | KG9/011 || Netzer Sereni (truck trailer) (Israel) |- | KG9/015 || Merkaz Hagrorim (trailer) (Israel) |- | KG9/035 || BEL Technologies (truck trailer) (Israel) |- | KG9/091 || Jansteel (truck trailer) (Israel) |- | KG9/101 || Bassamco (truck trailer) (Israel) |- | KG9/104 || Global Handasa (truck trailer) (Israel) |- | KL || Daewoo [[../GM/VIN Codes|General Motors]] South Korea |- | KLA || Daewoo/GM Daewoo/GM Korea (Chevrolet/Alpheon)<br /> from Bupyeong & Kunsan plants |- | KLP || CT&T United (battery electric low-speed vehicles) |- | KLT || Tata Daewoo |- | KLU || Tata Daewoo |- | KLY || Daewoo/GM Daewoo/GM Korea (Chevrolet) from Changwon plant (Tico/Matiz/Matiz Creative/Spark/Damas/Labo) |- | KL1 || GM Daewoo/GM Korea (Chevrolet car) |- | KL2 || Daewoo/GM Daewoo (Pontiac car) |- | KL3 || GM Daewoo/GM Korea (Holden) |- | KL4 || GM Korea (Buick MPV/SUV) |- | KL5 || GM Daewoo (Suzuki car) US: 2004-2008, Canada: 2004-2011 |- | KL5 || Daewoo Bus Corp./Zyle Daewoo Bus 2004-2017 |- | KL6 || GM Daewoo (GMC MPV/SUV) |- | KL7 || Daewoo (GM Canada brands: Passport car, Asuna car (Pre-2000)) |- | KL7 || GM Daewoo/GM Korea (Chevrolet MPV/SUV (Post-2000)) |- | KL8 || GM Daewoo/GM Korea (Chevrolet car from Changwon plant (Spark)) |- | KM || [[../Hyundai/VIN Codes|Hyundai]] |- | KMC || Hyundai commercial truck |- | KME || Hyundai commercial truck (semi-tractor) |- | KMF || Hyundai van & commercial truck & Bering Truck |- | KMH || Hyundai car & Mexican market Dodges made by Hyundai |- | KMJ || Hyundai minibus/bus |- | KMT || Genesis Motor car |- | KMU || Genesis Motor SUV |- | KMX || Hyundai Galloper SUV |- | KMY || Daelim Motor Company, Ltd/DNA Motors Co., Ltd. (motorcycles) |- | KM1 || Hyosung Motors (motorcycles) |- | KM4 || Hyosung Motors/S&T Motors/KR Motors (motorcycles) |- | KM8 || Hyundai SUV |- | KNA || Kia car |- | KNC || Kia truck |- | KND || Kia MPV/SUV & Hyundai Entourage |- | KNE || Kia for Europe export |- | KNF || Kia, special vehicles |- | KNG || Kia minibus/bus |- | KNJ || Ford Festiva & Aspire made by Kia |- | KNL || Kia Elan/Vigato made by Kia Motech |- | KNM || Renault Samsung Motors, Nissan Rogue made by Renault Samsung, Nissan Sunny made by Renault Samsung |- | KNM || Renault Korea Co., Ltd. |- | KN1 || Asia Motors |- | KN2 || Asia Motors |- | KPA || SsangYong/KG Mobility (KGM) pickup |- | KPB || SsangYong car or For S. Korea domestic market: SsangYong/KG Mobility (KGM) SUV/MPV |- | KPD || SsangYong bus (TransStar, Istana minibus, Rodius/Korando Turismo 11-seater) |- | KPH || Mitsubishi Precis |- | KPT || SsangYong/KG Mobility (KGM) SUV/MPV (For export) |- | LAA || Shanghai Jialing Vehicle Co., Ltd. (motorcycle) |- | LAE || Jinan Qingqi Motorcycle |- | LAL || Sundiro [[../Honda/VIN Codes|Honda]] Motorcycle |- | LAN || Changzhou Yamasaki Motorcycle |- | LAP || Chongqing Jianshe Motorcycle Co., Ltd. |- | LAP || Zhuzhou Nanfang Motorcycle Co., Ltd. |- | LAT || Luoyang Northern Ek Chor Motorcycle Co., Ltd. (Dayang) |- | LA6 || Xiamen King Long United Automotive Industry Co., Ltd. (bus) |- | LA7 || Radar Auto, Farizon Auto (Geely) |- | LA8 || Anhui Ankai |- | LA9/AYS || Jiangsu Alfa Bus Co., Ltd. (bus) |- | LA9/BFC || Beijing North Huade Neoplan Bus Co., Ltd. |- | LA9/FBC || Xiamen Fengtai Bus & Coach International Co., Ltd. (FTBCI) (bus) |- | LA9/HFF || Anhui Huaxia Vehicle Manufacturing Co., Ltd. (bus) |- | LA9/JXK || CHTC Bonluck Bus Co., Ltd. |- | LA9/LC0 || BYD |- | LA9/LFJ || Xinlongma Automobile |- | LA9/LM6 || SRM Shineray |- | LBB || Zhejiang Qianjiang Motorcycle (QJ Motor/Keeway/Benelli) |- | LBE || Beijing [[../Hyundai/VIN Codes|Hyundai]] (Hyundai, Shouwang) |- | LBM || Zongshen Piaggio |- | LBP || Chongqing Jianshe Yamaha Motor Co. Ltd. (motorcycles) |- | LBV || BMW Brilliance (BMW, Zinoro) |- | LBX || Jiangsu Kinroad Xintian Motorcycle Manufacture Co. Ltd. (motorcycles) |- | LBZ || Yantai Shuchi Vehicle Co., Ltd. (bus) |- | LB1 || Fujian Benz |- | LB2 || Geely Motorcycles |- | LB3 || Zhejiang Geely Holding Group (Geely, Galaxy, Geometry, Kandi) |- | LB4 || Chongqing Yinxiang Motorcycle Group Co., Ltd. |- | LB5 || Foshan City Fosti Motorcycle Co., Ltd. |- | LB7 || Tibet New Summit Motorcycle Co., Ltd. |- | LCE || Hangzhou Chunfeng Motorcycles (CFMOTO) |- | LCR || Gonow |- | LC0 || BYD Auto (BYD, Denza) |- | LC2 || Changzhou Kwang Yang Motor Co., Ltd. (Kymco) |- | LC6 || Changzhou Haojue Suzuki Motorcycle Co. Ltd. |- | LDB || Dadi Auto |- | LDC || Dongfeng Peugeot Citroen Automobile Co., Ltd. (DPCA), Dongfeng Fengshen (Aeolus) L60 |- | LDD || Dandong Huanghai Automobile |- | LDF || Dezhou Fulu Vehicle Co., Ltd. (motorcycles), BAW Yuanbao electric car (Ace P1 in Norway) |- | LDK || FAW Bus (Dalian) Co., Ltd. |- | LDN || Soueast (South East (Fujian) Motor Co., Ltd.) including Mitsubishi made by Soueast |- | LDP || Dongfeng, Dongfeng Fengshen (Aeolus), Voyah, Renault City K-ZE/Venucia e30 made by eGT New Energy Automotive |- | LDY || Zhongtong Bus Holding Co. Ltd. |- | LD3 || Guangdong Tayo Motorcycle Technology Co. (Zontes) (motorcycle) |- | LD5 || Benzhou Vehicle Industry Group Ltd. (motorcycle) |- | LD9/L3A || SiTech (FAW) |- | LEC || Tianjin Qingyuan Electric Vehicle Co., Ltd. |- | LEF || Jiangling Motors Corporation Ltd. (JMC) |- | LEH || Zhejiang Riya Motorcycle Co. Ltd. |- | LET || Jiangling-Isuzu Motors, China |- | LEW || Dongfeng commercial vehicle |- | LE4 || Beijing Benz & Beijing Benz-Daimler Chrysler Automotive Co. (Chrysler, Jeep, Mitsubishi, Mercedes-Benz) & Beijing Jeep Corp. |- | LE8 || Guangzhou Huaye Electric Vehicle Technology Co., Ltd. (Formerly Guangzhou Panyu Huanan Motors Group Co., Ltd.) (motorcycles) |- | LFB || FAW Group (Bestune, Hongqi) & Mazda made under license by FAW (Mazda 8, CX-7) |- | LFF || Zhejiang Taizhou Wangye Power Co., Ltd. |- | LFG || Taizhou Chuanl Motorcycle Manufacturing |- | LFJ || Fujian Motors Group (Keyton) |- | LFM || FAW Toyota Motor (Toyota, Ranz) |- | LFN || FAW Bus (Wuxi) Co., Ltd. (truck, bus) |- | LFP || FAW Car, Bestune, Hongqi (passenger vehicles) & Mazda made under license by FAW (Mazda 6, CX-4) |- | LFT || FAW (trailers) |- | LFU || Lifeng Group Co., Ltd. (motorcycles) |- | LFV || FAW-Volkswagen (VW, Audi, Jetta, Kaili) |- | LFW || FAW JieFang (truck) |- | LFX || Sany Heavy Industry (truck) |- | LFY || Changshu Light Motorcycle Factory |- | LFZ || Leapmotor |- | LF3 || Lifan Motorcycle |- | LGA || Dongfeng Commercial Vehicle Co., Ltd. trucks |- | LGB || Dongfeng Nissan (Nissan, Infiniti, Venucia) |- | LGB || Dongfeng Commercial Vehicle Co., Ltd. |- | LGC || Dongfeng Commercial Vehicle Co., Ltd. bus chassis |- | LGD || Dongfeng Commercial Vehicle Co., Ltd. |- | LGF || Dongfeng Commercial Vehicle Co., Ltd. bus chassis |- | LGG || Dongfeng Liuzhou Motor (Forthing/Fengxing) |- | LGJ || Dongfeng Fengshen (Aeolus) |- | LGL || Guilin Daewoo |- | LGV || Heshan Guoji Nanlian Motorcycle Industry Co., Ltd. |- | LGW || Great Wall Motor (GWM, Haval, Ora, Tank, Wey) |- | LGX || BYD Auto (BYD, Fangchengbao) |- | LGZ || Guangzhou Denway Bus |- | LG6 || Dayun Group |- | LHA || Shuanghuan Auto |- | LHB || Beijing Automotive Industry Holding |- | LHG || GAC Honda (Honda, Everus, Acura) |- | LHJ || Chongqing Astronautic Bashan Motorcycle Manufacturing Co., Ltd. |- | LHM || Dongfeng Renault Automobile Co. |- | LHW || CRRC Electric Vehicle Co., Ltd. (bus) |- | LH0 || WM Motor Technology Co., Ltd. (Weltmeister) |- | LH1 || FAW-Haima, China |- | LJC || Jincheng Corporation |- | LJD || Yueda Kia (previously Dongfeng Yueda Kia) (Kia, Horki) & Human Horizons - HiPhi (made under contract by Yueda Kia) |- | LJM || Sunlong (bus) |- | LJN || Zhengzhou Nissan |- | LJR || CIMC Vehicles Group (truck trailer) |- | LJS || Yaxing Coach, Asiastar Bus |- | LJU || Shanghai Maple Automobile & Kandi & Zhidou |- | LJU || Lotus Technology (Wuhan Lotus Cars Co., Ltd.) |- | LJV || Sinotruk Chengdu Wangpai Commercial Vehicle Co., Ltd. |- | LJW || JMC Landwind |- | LJX || JMC Ford |- | LJ1 || JAC (JAC, Sehol) |- | LJ1 || Nio, Inc. |- | LJ4 || Shanghai Jmstar Motorcycle Co., Ltd. |- | LJ5 || Cixi Kingring Motorcycle Co., Ltd. (Jinlun) |- | LJ8 || Zotye Auto made by Jiangnan Automobile |- | LKC || BAIC commercial vehicles, previously Changhe |- | LKG || Youngman Lotus Automobile Co., Ltd. |- | LKH || Hafei Motor |- | LKL || Higer Bus |- | LKT || Yunnan Lifan Junma Vehicle Co., Ltd. commercial vehicles |- | LK2 || Anhui JAC Bus |- | LK6 || SAIC-GM-Wuling (Wuling, Baojun) microcars and other vehicles |- | LK8 || Zhejiang Yule New Energy Automobile Technology Co., Ltd. (ATV) |- | LLC || Loncin Motor Co., Ltd. (motorcycle) |- | LLJ || Jiangsu Xinling Motorcycle Fabricate Co., Ltd. |- | LLN || Qoros |- | LLP || Zhejiang Jiajue Motorcycle Manufacturing Co., Ltd. |- | LLU || Dongfeng Fengxing Jingyi |- | LLV || Lifan, Maple (owned by Geely), Livan Automotive |- | LLX || Yudo Auto |- | LL0 || Sanmen County Yongfu Machine Co., Ltd. (motorcycles) |- | LL2 || WM Motor Technology Co., Ltd. (Weltmeister) |- | LL3 || Xiamen Golden Dragon Bus Co. Ltd. |- | LL6 || GAC Mitsubishi Motors Co., Ltd. (formerly Hunan Changfeng) |- | LL8 || Jiangsu Linhai Yamaha Motor Co., Ltd. |- | LMC || Suzuki Hong Kong (motorcycles) |- | LME || Skyworth (formerly Skywell), Elaris Beo |- | LMF || Jiangmen Zhongyu Motor Co., Ltd. |- | LMG || GAC Motor, Trumpchi, [[w:Dodge Attitude#Fourth generation (2025)|Dodge Attitude made by GAC]] |- | LMH || Jiangsu Guowei Motor Co., Ltd. (Motoleader) |- | LMP || Farizon Auto (Geely Sichuan Commercial Vehicle Co., Ltd.) |- | LMV || Haima Car Co., Ltd. |- | LMV || XPeng Motors G3 (not G3i) made by Haima |- | LMW || GAC Group, [[w:Trumpchi GS5#Dodge Journey|Dodge Journey made by GAC]] |- | LMX || Forthing (Dongfeng Fengxing) |- | LM0 || Wangye Holdings Co., Ltd. (motorcycles) |- | LM6 || SWM (automobiles) |- | LM8 || Seres (formerly SF Motors), AITO |- | LNA || GAC Aion New Energy Automobile Co., Ltd., Hycan |- | LNB || BAIC Motor (Senova, Weiwang, Huansu) & Arcfox & Xiaomi SU7 built by BAIC |- | LND || JMEV (Jiangxi Jiangling Group New Energy Vehicle Co., Ltd.), Eveasy/Mobilize Limo |- | LNE || Zhejiang CRRC Electric Vehicle Co., Ltd. (bus) |- | LNP || NAC MG UK Limited & Nanjing Fiat Automobile |- | LNN || Chery Automobile, Omoda, Jaecoo |- | LNV || Naveco (Nanjing Iveco Automobile Co. Ltd.) |- | LNX || Dongfeng Liuzhou Motor (Chenglong trucks) |- | LNY || Yuejin |- | LPA || Changan PSA (DS Automobiles) |- | LPE || BYD Auto |- | LPS || Polestar |- | LP6 || Guangzhou Panyu Haojian Motorcycle Industry Co., Ltd. |- | LRB || SAIC-General Motors (Buick for export) |- | LRD || Beijing Foton Daimler Automotive Co., Ltd. Auman trucks |- | LRE || SAIC-General Motors (Cadillac for export) |- | LRP || Chongqing Rato Power Co. Ltd. (Asus) |- | LRR || Ningbo Longjia Power Technology Co., Ltd. (motorcycles) |- | LRW || Tesla, Inc. (Gigafactory Shanghai) |- | LR4 || Yadi Technology Group |- | LR6 || Guangzhou Dayun Vehicle Co., Ltd. |- | LSC || Changan Automobile (light truck) |- | LSF || SAIC Maxus or LDV pickup/SUV & Chevrolet S10 Max & Shanghai Sunwin Bus Corporation |- | LSG || SAIC-General Motors (For China: Chevrolet, Buick, Cadillac, Sail Springo, For export: Chevrolet) |- | LSH || SAIC Maxus van or LDV van & Chevrolet Express Max |- | LSJ || SAIC MG & SAIC Roewe & IM Motors & Rising Auto |- | LSK || SAIC Maxus or LDV van |- | LSV || SAIC-Volkswagen (VW, Skoda, Audi, Tantus) |- | LSY || Brilliance (Jinbei, Zhonghua) & Jinbei GM |- | LS3 || Hejia New Energy Vehicle Co., Ltd |- | LS4 || Changan Automobile (MPV/SUV) |- | LS5 || Changan Automobile (car) & Changan Suzuki |- | LS6 || Changan Automobile & Deepal Automobile & Avatr |- | LS7 || JMC Heavy Duty Truck Co., Ltd. |- | LS8 ||Henan Shaolin Auto Co., Ltd. (bus) |- | LTA || ZX Auto |- | LTN || Soueast-built Chrysler & Dodge vehicles |- | LTP || National Electric Vehicle Sweden AB (NEVS) |- | LTV || FAW [[../Toyota/VIN Codes|Toyota]] (Tianjin) |- | LTW || Zhejiang Dianka Automobile Technology Co. Ltd. (Enovate) |- | LT1 || Yangzhou Tonghua Semi-Trailer Co., Ltd. (truck trailer) |- | LUC || [[../Honda/VIN Codes|Honda]] Automobile (China) |- | LUD || Dongfeng Nissan Diesel Motor Co Ltd. |- | LUG || Qiantu Motor |- | LUJ || Zhejiang Shanqi Tianying Vehicle Industry Co., Ltd. (motorcycles) |- | LUR || Chery Automobile, iCar |- | LUX || Dongfeng Yulon Motor Co. Ltd. |- | LUZ || Hozon Auto New Energy Automobile Co., Ltd. (Neta) |- | LVA || Foton Motor |- | LVB || Foton Motor truck |- | LVC || Foton Motor bus |- | LVF || Changhe Suzuki |- | LVG || GAC Toyota (Toyota, Leahead) |- | LVH || Dongfeng Honda (Honda, Ciimo) |- | LVM || Chery Commercial Vehicle |- | LVP || Dongfeng Sokon Motor Company (DFSK) |- | LVR || Changan Mazda |- | LVS || Changan [[../Ford/VIN Codes|Ford]] (Ford, Lincoln) & Changan Ford Mazda & Volvo S40 and S80L made by Changan Ford Mazda |- | LVT || Chery Automobile, Exeed, Jetour, Soueast |- | LVU || Chery Automobile, Jetour |- | LVV || Chery Automobile, Omoda, Jaecoo |- | LVX || Landwind, JMC (discontinued in 2021) |- | LVX || Aiways Automobiles Company Ltd |- | LVY || Volvo Cars Daqing factory |- | LVZ || Dongfeng Sokon Motor Company (DFSK) |- | LV3 || Hengchi Automobile (Evergrande Group) |- | LV7 || Jinan Qingqi Motorcycle |- | LWB || Wuyang Honda Motorcycle (Guangzhou) Co., Ltd. |- | LWE || Yangtse Motor Group (bus) |- | LWG || Chongqing Huansong Industries (Group) Co., Ltd. |- | LWL || Qingling Isuzu |- | LWM || Chongqing Wonjan Motorcycle Co., Ltd. |- | LWV || GAC Fiat Chrysler Automobiles (Fiat, Jeep) |- | LWX || Shanghai Wanxiang Automobile Manufacturing Co., Ltd. (bus) |- | LW4 || Li Auto |- | LXA || Jiangmen Qipai Motorcycle Co., Ltd. |- | LXD || Ningbo Dongfang Lingyun Vehicle Made Co., Ltd. (motorcycle) |- | LXG || Xuzhou Construction Machinery Group Co., Ltd. (XCMG) |- | LXK || Shanghai Meitian Motorcycle Co., Ltd. |- | LXM || Xiamen Xiashing Motorcycle Co., Ltd. (SYM) |- | LXN || Link Tour |- | LXV || Beijing Borgward Automotive Co., Ltd. |- | LXW || JMC - Ford |- | LXY || Chongqing Shineray Motorcycle Co., Ltd. |- | LX6 || Jiangmen City Huari Group Co. Ltd. (motorcycle) |- | LX8 || Chongqing Xgjao (Xinganjue) Motorcycle Co Ltd. |- | LYB || Weichai (Yangzhou) Yaxing Automobile Co., Ltd. |- | LYD || Taizhou City Kaitong Motorcycle Co., Ltd. (motorcycle) |- | LYJ || Beijing ZhongdaYanjing Auto Co., Ltd. (bus) |- | LYM || Zhuzhou Jianshe Yamaha Motorcycle Co., Ltd. |- | LYS || Nanjing Vmoto Manufacturing Co. Ltd. (motorcycle) |- | LYU || Huansu (BAIC Motor & Yinxiang Group) |- | LYV || Volvo Cars Chengdu factory & Taizhou, Luqiao District factory |- | LY4 || Chongqing Yingang Science & Technology Group Co., Ltd. (motorcycle) |- | LZE || Isuzu Guangzhou, China |- | LZF || SAIC Iveco Hongyan (-2021), SAIC Hongyan (2021-) |- | LZG || Shaanxi Automobile Group (Shacman) |- | LZK || Sinotruk (CNHTC) Huanghe bus |- | LZL || Zengcheng Haili Motorcycle Ltd. |- | LZM || MAN China |- | LZP || Zhongshan Guochi Motorcycle (Baotian) |- | LZS || Zongshen, Electra Meccanica Vehicles Corp. (Solo) made by Zongshen |- | LZU || Guangzhou Isuzu Bus |- | LZW || SAIC-GM-Wuling (Wuling, Baojun, Chevrolet [for export]) |- | LZY || Yutong Bus Co., Ltd. |- | LZZ || Sinotruk (CNHTC) (Howo, Sitrak) |- | LZ0 || Shandong Wuzheng Group Co., Ltd. |- | LZ4 || Jiangsu Linzhi Shangyang Group Co Ltd. |- | LZ9/LZX || Raysince |- | L0N || Ezytrail (camper trailers) |- | L08 || Zhejiang Apollo Sports Technology Co., Ltd. (motorcycles) |- | L1K || Chongqing Hengtong Bus Co., Ltd. |- | L1N || XPeng Motors |- | L10 || Geely Emgrand |- | L2B || Jiangsu Baodiao Locomotive Co., Ltd. (motorcycles) |- | L2C || Chery Jaguar Land Rover |- | L3H || Shanxi Victory Automobile Manufacturing Co., Ltd. |- | L37 || Huzhou Daixi Zhenhua Technology Trade Co., Ltd. (motorcycles) |- | L4B || Xingyue Group (motorcycles) |- | L4F || Suzhou Eagle Electric Vehicle Manufacturing Co., Ltd. |- | L4H || Ningbo Longjia Motorcycle Co., Ltd. |- | L4S || Zhejiang Xingyue Vehicle Co Ltd. (motorcycles) |- | L4Y || Qingqi Group Ningbo Rhon Motorcycle / Ningbo Dalong Smooth Locomotive Industry Co., Ltd. |- | L5C || Zhejiang Kangdi Vehicles Co., Ltd. (motorcycles, ATVs) |- | L5E || Zoomlion Heavy Industry Science & Technology Co., Ltd. |- | L5K || Zhejiang Yongkang Easy Vehicle |- | L5N || Zhejiang Taotao (ATV & motorcycles) |- | L5R || Jiangsu Dafier Motorcycle Co., Ltd. (motorcycles) |- | L5Y || Taizhou Zhongneng Motorcycle Co. Ltd. (Znen) |- | L6F || Shandong Liangzi Power Co. Ltd. |- | L6J || Zhejiang Kayo Motor Co. Ltd. (ATV) |- | L6K || Shanghai Howhit Machinery Manufacture Co. Ltd. |- | L6T || Geely, Lynk & Co, Zeekr |- | L66 || Zhuhai Granton Bus and Coach Co. Ltd. |- | L82 || Baotian |- | L85 || Zhejiang Yongkang Huabao Electric Appliance |- | L8A || Jinhua Youngman Automobile Manufacturing Co., Ltd. |- | L8X || Zhejiang Summit Huawin Motorcycle |- | L8Y || Zhejiang Jonway Motorcycle Manufacturing Co., Ltd. |- | L9G || Zhuhai Guangtong Automobile Co., Ltd. (bus) |- | L9N || Zhejiang Taotao Vehicles Co., Ltd. |- | MAA || India Kawasaki Motors Pvt. Ltd. |- | MAB || Mahindra & Mahindra |- | MAC || Mahindra & Mahindra |- | MAH || Fiat India Automobiles Pvt. Ltd |- | MAJ || [[../Ford/VIN Codes|Ford]] India |- | MAK || [[../Honda/VIN Codes|Honda]] Cars India |- | MAL || Hyundai Motor India |- | MAN || Eicher Polaris Multix |- | MAT || Tata Motors, Rover CityRover |- | MA1 || Mahindra & Mahindra |- | MA3 || Maruti Suzuki India (domestic & export) |- | MA6 || GM India |- | MA7 || Hindustan Motors Ltd. & Mitsubishi Motors & Isuzu models made by Hindustan Motors |- | MA8 || Daewoo Motor India |- | MBF || Royal Enfield |- | MBH || Suzuki (for export) & Nissan Pixo made by Maruti Suzuki India Limited |- | MBJ || [[../Toyota/VIN Codes|Toyota]] Kirloskar Motor Pvt. Ltd. |- | MBK || MAN Trucks India Pvt. Ltd. |- | MBL || Hero MotoCorp |- | MBR || Mercedes-Benz India |- | MBU || Swaraj Vehicles Limited |- | MBV || Premier Automobiles Ltd. |- | MBX || Piaggio India (Piaggio Ape) |- | MBY || Asia Motor Works Ltd. |- | MB1 || Ashok Leyland |- | MB2 || Hyundai Motor India (SUV) |- | MB7 || Reva Electric Car Company/Mahindra Reva Electric Vehicles Pvt. Ltd. |- | MB8 || Suzuki Motorcycle India Limited |- | MCA || FCA India Automobiles Pvt. Ltd. (Fiat, Jeep) |- | MCB || GM India |- | MCD || Mahindra Two Wheelers |- | MCG || Atul Auto Ltd. |- | MCL || International Cars And Motors Ltd. |- | MC1 || Force Motors Ltd. |- | MC2 || Eicher Motors Ltd./Volvo Eicher Commercial Vehicles Ltd. |- | MC4 || Dilip Chhabria Design Pvt Ltd. |- | MC9/RE1 || Reva Electric Car Company (Reva G-Wiz) |- | MDE || Kinetic Engineering Limited |- | MDH || Nissan Motor India Pvt Ltd. (including Datsun) |- | MDT || Kerala Automobiles Limited |- | MD2 || Bajaj Auto Ltd. & KTM and Husqvarna motorcycles built by Bajaj & Indian-market Triumph motorcycles built by Bajaj |- | MD6 || TVS Motor Company |- | MD7 || LML Ltd including Genuine Scooter Company Stella |- | MD9 || Shuttle Cars India |- | MEC || Daimler India Commercial Vehicles (BharatBenz) |- | MEE || Renault India Private Limited |- | MEG || Harley-Davidson India |- | MER || Benelli India |- | MES || Mahindra Navistar |- | MET || Piaggio India (Vespa, Indian-market Aprilia) |- | MEX || Škoda Auto Volkswagen India Pvt. Ltd. 2015 on |- | ME1 || India Yamaha Motor Pvt. Ltd. |- | ME3 || Royal Enfield |- | ME4 || Honda Motorcycle and Scooter India |- | MYH || Ather Energy |- | MZB || Kia India Pvt. Ltd. |- | MZD || Classic Legends Private Limited – Jawa |- | MZZ || Citroen India (PCA Automobiles India Private Limited) |- | MZ7 || MG Motor India Pvt. Ltd. |- | M3G || Isuzu Motors India |- | M6F || UM Lohia Two Wheelers Private Limited |- | ME9/ || BUYMYEV TECHNOLOGY PVT. LTD. (Indibike) |- | MF3 || PT Hyundai Motor Manufacturing Indonesia |- | MHB || PT Nissan Motor Indonesia |- | MHD || PT Indomobil Suzuki International |- | MHF || PT [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing Indonesia |- | MHK || PT Astra Daihatsu Motor (includes Toyotas made by Astra Daihatsu) |- | MHL || PT Mercedes-Benz Indonesia |- | MHR || [[../Honda/VIN Codes|Honda]] Indonesia (PT Honda Prospect Motor) (car) |- | MHY || PT Suzuki Indomobil Motor (car, MPV, van) |- | MH1 || PT Astra Honda Motor (motorcycle) |- | MH3 || PT Yamaha Indonesia Motor Mfg. |- | MH4 || PT Kawasaki Motor Indonesia |- | MH8 || PT Suzuki Indomobil Motor (motorcycle) |- | MJB || GM Indonesia |- | MKF || PT Sokonindo Automobile (DFSK) |- | MK2 || PT Mitsubishi Motors Krama Yudha Indonesia |- | MK3 || PT SGMW Motor Indonesia (Wuling) |- | MLB || Siam Yamaha Co Ltd. |- | MLC || Thai Suzuki Motor Co., Ltd. (motorcycle) |- | MLE || Thai Yamaha Motor Co., Ltd. |- | MLH || Thai [[../Honda/VIN Codes|Honda]] Manufacturing Co., Ltd. (motorcycle) |- | MLW || Sco Motor Co., Ltd. (motorcycle) |- | MLY || Harley-Davidson Thailand |- | ML0 || Ducati Motor (Thailand) Co., Ltd. |- | ML3 || Mitsubishi Motors, Dodge Colt 100 [Canada], [[w:Dodge Attitude#Third generation (A10; 2015)|Dodge Attitude]] [Mexico] made by Mitsubishi (Thailand) |- | ML5 || Kawasaki Motors Enterprise Co. Ltd. (Thailand) |- | MMA || Mitsubishi Motors (Thailand) |- | MMB || Mitsubishi Motors (Thailand) |- | MMC || Mitsubishi Motors (Thailand) |- | MMD || Mitsubishi Motors (Thailand) |- | MME || Mitsubishi Motors (Thailand) |- | MMF || BMW Manufacturing (Thailand) Co., Ltd. |- | MML || MG Thailand (SAIC-CP) |- | MMM || Chevrolet Thailand, Holden Colorado RC pickup |- | MMR || Subaru/Tan Chong Subaru Automotive (Thailand) Co. Ltd. |- | MMS || Suzuki Motor (Thailand) Co., Ltd. (passenger car) |- | MMT || Mitsubishi Motors (Thailand) |- | MMU || Holden Thailand (Colorado RG, Colorado 7, & Trailblazer) |- | MM0, MM6, MM7, MM8 || Mazda Thailand (Ford-Mazda AutoAlliance Thailand plant) |- | MNA || [[../Ford/VIN Codes|Ford]] Thailand (Ford-Mazda AutoAlliance Thailand plant) for Australia/New Zealand export |- | MNB || [[../Ford/VIN Codes|Ford]] Thailand (Ford-Mazda AutoAlliance Thailand plant) for other right-hand drive markets |- | MNC || [[../Ford/VIN Codes|Ford]] Thailand (Ford-Mazda AutoAlliance Thailand plant) for left-hand drive markets |- | MNK || Hino Motors Manufacturing Thailand Co Ltd. |- | MNT || Nissan Motor (Thailand) Co., Ltd. |- | MNU || Great Wall Motor Manufacturing (Thailand) Co., Ltd. |- | MN3 || Eagle Vista [Canada] made by Mitsubishi (Thailand) |- | MPA || Isuzu Motors (Thailand) Co., Ltd. & Holden Rodeo RA pickup made by Isuzu in Thailand |- | MPB || [[../Ford/VIN Codes|Ford]] Thailand (Ford Thailand Manufacturing plant) |- | MP1 || Isuzu Motors (Thailand) Co., Ltd. |- | MP2 || Mazda BT-50 pickup built by Isuzu Motors (Thailand) Co., Ltd. |- | MP3 || Plymouth Colt 100 [Canada] made by Mitsubishi (Thailand) |- | MP5 || Foton Motor Thailand |- | MRH || [[../Honda/VIN Codes|Honda]] Thailand (car) |- | MRT || Neta (Hozon Auto) made by Bangchan General Assembly Co., Ltd. |- | MR0 || [[../Toyota/VIN Codes|Toyota]] Thailand (pickups & Fortuner SUV) |- | MR1 || [[../Toyota/VIN Codes|Toyota]] Thailand |- | MR2 || [[../Toyota/VIN Codes|Toyota]] Thailand (Gateway plant) (passenger cars & CUVs) |- | MR3 || [[../Toyota/VIN Codes|Toyota]] Thailand (Hilux Champ chassis cab) |- | MS0 || [[../SUPER SEVEN STARS MOTORS INDUSTRY CO.,LTD/VIN Codes|Super Seven Stars Motors]] Myanmar |- | MS1 || [[../SUPER SEVEN STARS AUTOMOTIVE CO.,LTD/VIN Codes|Super Seven Stars Automotive]] Myanmar |- | MS3 || Suzuki Myanmar Motor Co., Ltd. |- | MXB || Saryarka AvtoProm bus (Kazakhstan) |- | MXL || Yutong bus made by Qaz Tehna (Kazakhstan) |- | MXV || IMZ-Ural Ural Motorcycles (Kazakhstan) |- | MX3 || Hyundai Trans Auto (Kazakhstan) |- | NAA || Iran Khodro (Peugeot Iran) |- | NAC || Mammut (truck trailers) |- | NAD || Škoda |- | NAL || Maral Sanat Jarvid (truck trailers) |- | NAP || Pars Khodro |- | NAS || SAIPA |- | NC0 || Oghab Afshan (bus) |- | NC9/ || VIRA Diesel |- | ND9/345 || Oghab Afshan (bus) |- | NFB || Honda Atlas Cars Pakistan Ltd. |- | NG3 || Lucky Motor Corporation |- | NLA || Honda Turkiye A.S. cars |- | NLC || Askam Kamyon Imalat Ve Ticaret A.S. |- | NLE || Mercedes-Benz Türk A.S. Truck |- | NLF || Koluman Otomotiv Endustri A.S. (truck trailer) |- | NLH || [[../Hyundai/VIN Codes|Hyundai]] Assan Otomotiv car/SUV |- | NLJ || [[../Hyundai/VIN Codes|Hyundai]] Assan Otomotiv van |- | NLN || Karsan |- | NLR || Otokar |- | NLT || Temsa |- | NLZ || Tezeller |- | NL1 || TOGG |- | NL2 || HABAS/HBS (bus) |- | NMA || MAN Türkiye A.Ş. |- | NMB || Mercedes-Benz Türk A.S. Buses |- | NMC || BMC Otomotiv Sanayi ve Ticaret A.Ş. |- | NMH || Honda Anadolu motorcycle |- | NMS || Otoyol San. A.Ş. |- | NMT || [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing Turkey |- | NM0 || Ford Otosan |- | NM1 || Oyak Renault Otomobil Fabrikaları A.Ş. |- | NM4 || Tofaş (Turk Otomobil Fabrikasi AS) |- | NNA || Anadolu Isuzu |- | NNN || Gépébus Oréos 4X (based on Otokar Vectio) |- | NNY || Yeksan (truck trailer) |- | NPM || Seyit Usta Treyler (truck trailer) |- | NPR || Oztreyler (truck trailer) |- | NPS || Nursan (truck trailer) |- | NP8|| ÖZGÜL TREYLER (truck trailer) |- | NP9/002 || OKT Trailer (truck trailer) |- | NP9/003 || Aksoylu Trailer (truck trailer) |- | NP9/011 || Güleryüz (bus) |- | NP9/021 || Dogumak (truck trailer) |- | NP9/022 || Alim (truck trailer) |- | NP9/042 || Ali Rıza Usta (truck trailer) |- | NP9/066 || Makinsan (truck trailer) |- | NP9/093 || BRF Trailer (truck trailer) |- | NP9/103 || Türkkar (bus) |- | NP9/106 || Çarsan Treyler (truck trailer) |- | NP9/107 || Arbus Perfect (bus) |- | NP9/108 || Guven Makina (truck trailer) |- | NP9/117 || Katmerciler (truck trailer) |- | NP9/300 || TCV (bus) |- | NP9/258 || Ceytrayler (truck trailer) |- | NP9/306 || Cryocan (truck trailer) |- | NRE || Bozankaya |- | NRX || Musoshi |- | NRY || Pilotcar Otomotiv |- | NR9/012 || Doğan Yıldız (truck trailer) |- | NR9/028 || Micansan (truck trailer) |- | NR9/029 || Yilteks (truck trailer) |- | NR9/034 || Akia (bus) |- | NR9/084 || Harsan (truck trailer) |- | NR9/257 || Vega Trailer (truck trailer) |- | NSA || SamAvto / SAZ (Uzbekistan) |- | NS2 || JV MAN Auto - Uzbekistan |- | NVA || Khazar (IKCO Dena made in Azerbaijan) |- | PAB || Isuzu Philippines Corporation |- | PAD || Honda Cars Philippines |- | PE1 || Ford Motor Company Philippines |- | PE3 || Mazda Philippines made by Ford Motor Company Philippines |- | PFD || Hyundai Motor Group Innovation Center in Singapore (HMGICS) |- | PL1 || Proton, Malaysia |- | PL8 || Inokom-Hyundai |- | PLP || Subaru/Tan Chong Motor Assemblies, Malaysia |- | PLZ || Isuzu Malaysia |- | PMA || MAN Truck & Bus Malaysia |- | PMH || Honda Malaysia (car) |- | PMK || Honda Boon Siew (motorcycle) |- | PML || Hicom |- | PMN || Modenas |- | PMS || Suzuki Assemblers Malaysia (motorcycle) |- | PMV || Hong Leong Yamaha Motor Sdn. Bhd. |- | PMY || Hong Leong Yamaha Motor Sdn. Bhd. |- | PM1 || BMW & Mini/Inokom |- | PM2 || Perodua |- | PM9/ || Bufori |- | PNA || Naza/Kia/Peugeot |- | PNA || Stellantis Gurun (Malaysia) Sdn. Bhd. (Peugeot) |- | PNS || SKSBUS Malaysia (bus) |- | PNS || TMSBUS Malaysia (bus) |- | PNV || Volvo Car Manufacturing Malaysia |- | PN1 || UMW Toyota Motor - Assembly Services Sdn. Bhd. (ASSB) |- | PN2 || UMW Toyota Motor - Assembly Services Sdn. Bhd. (ASSB) |- | PN8 || Nissan/Tan Chong Motor Assemblies, Malaysia |- | PPP || Suzuki |- | PPV || Volkswagen/HICOM Automotive Manufacturers (Malaysia) |- | PP1 || Mazda/Inokom |- | PP3 || Hyundai/Inokom |- | PRA || Sinotruk |- | PRH || Chery (by Chery Alado Holdings [joint venture] at Oriental Assemblers plant) |- | PRX || Kia/Inokom |- | PR8 || Ford |- | PRN || GAC Trumpchi made by Warisan Tan Chong Automotif Malaysia |- | PV3 || Ford made by RMA Automotive Cambodia |- | RA1 || Steyr Trucks International FZE, UAE |- | RA9/015 || Al-Assri Industries (Trailers), UAE |- | LES || Isuzu MPV made by Sanfu Motor Industrial Co., Ltd. (Trooper '87-'91) (Taiwan) |- | LFA || Ford Lio Ho Motor Co Ltd. old designation (Taiwan) |- | LM1 || Tai Ling Motor Co Ltd. old designation (Suzuki motorcycle made by Tai Ling) (Taiwan) |- | LM4 || Tai Ling Motor Co Ltd. old designation (Suzuki ATV made by Tai Ling) (Taiwan) |- | LM5 || Isuzu Truck (Light Duty) made by Sanfu Motor Industrial Co., Ltd. (Trooper '87-'88) (Taiwan) |- | LN1 || Tai Ling Motor Co Ltd. old designation (Suzuki motorcycle made by Tai Ling) (Taiwan) |- | LPR || Yamaha Motor Taiwan Co. Ltd. old designation (Taiwan) |- | RFB || Kwang Yang Motor Co., Ltd. (Kymco), Taiwan |- | RFC || Taiwan Golden Bee |- | RFD || Tai Ling Motor Co Ltd. new designation (Taiwan) |- | RFG || Sanyang Motor Co., Ltd. (SYM) Taiwan |- | RFL || Her Chee Industrial Co., Ltd. (Adly), Taiwan |- | RFT || CPI Motor Company, Taiwan |- | RFV || Motive Power Industry Co., Ltd. (PGO Scooters including Genuine Scooter Company models made by PGO) (Taiwan) |- | RF3 || Aeon Motor Co., Ltd., Taiwan |- | RF5 || Yulon Motor Co. Ltd., Taiwan (Luxgen) |- | RF8 || EVT Technology Co., Ltd (motorcycle) |- | RGS || Kawasaki made by Kymco (Taiwan) |- | RHA || Ford Lio Ho Motor Co Ltd. new designation (Taiwan) |- | RKJ || Prince Motors Taiwan |- | RKL || Kuozui Motors (Toyota) (Taiwan) |- | RKM || China Motor Corporation (Taiwan) |- | RKR || Yamaha Motor Taiwan Co. Ltd. new designation |- | RKT || Access Motor Co., Ltd. (Taiwan) |- | RK3 || E-Ton Power Tech Co., Ltd. (motorcycle) (Taiwan) |- | RK3 || Honda Taiwan |- | RK7 || Kawasaki ATV made by Tai Ling Motor Co Ltd (rebadged Suzuki ATV) new designation (Taiwan) |- | RLA || Vina Star Motors Corp. – Mitsubishi (Vietnam) |- | RLC || Yamaha Motor Vietnam Co. Ltd. |- | RLE || Isuzu Vietnam Co. |- | RLH || Honda Vietnam Co. Ltd. |- | RLL || VinFast SUV |- | RLM || Mercedes-Benz Vietnam |- | RLN || VinFast |- | RLV || Vietnam Precision Industrial CO., Ltd. (Can-Am DS 70 & DS 90) |- | RL0 || Ford Vietnam |- | RL4 || Toyota Motor Vietnam |- | RP8 || Piaggio Vietnam Co. Ltd. |- | RUN || Sollets-Auto ST6 (Russia) |- | R1J || Jiayuan Power (Hong Kong) Ltd. (Electric Low-Speed Vehicles) (Hong Kong) |- | R1N || Niu Technologies Group Ltd. (Hong Kong) |- | R10 || ZAP (HK) Co. Ltd. |- | R19/003 || GMI (bus) (Hong Kong) |- | R2P || Evoke Electric Motorcycles (Hong Kong) |- | R3M || Mangosteen Technology Co., Ltd. (Hong Kong) |- | R36 || HK Shansu Technology Co., Ltd. (Hong Kong) |- | R4N || Elyx Smart Technology Holdings (Hong Kong) Ltd. |- | R82 || Hangzhou Lantu Technology Co., Ltd. (Hong Kong) |- | SAA || Austin |- | SAB || Optare (1985-2020), Switch Mobility (2021-) |- | SAD || Daimler Company Limited (until April 1987) |- | SAD || Jaguar SUV (E-Pace, F-Pace, I-Pace) |- | SAF || ERF trucks |- | SAH || Honda made by Austin Rover Group |- | SAJ || Jaguar passenger car & Daimler passenger car (after April 1987) |- | SAL || [[../Land Rover/VIN Codes|Land Rover]] |- | SAM || Morris |- | SAR || Rover & MG Rover Group |- | SAT || Triumph car |- | SAX || Austin-Rover Group including Sterling Cars |- | SAY || Norton Motorcycles (UK) Ltd. (Donington Park/Donington Hall) |- | SAZ || Freight Rover |- | SA3 || Ginetta Cars |- | SA9/ || OX Global |- | SA9/A11 || Morgan Roadster (V6) (USA) |- | SA9/J00 || Morgan Aero 8 (USA) |- | SA9/004 || Morgan (4-wheel passenger cars) |- | SA9/005 || Panther |- | SA9/010 || Invicta S1 |- | SA9/011 || Midas Cars |- | SA9/019 || TVR |- | SA9/022 || Triking Sports Cars |- | SA9/026 || Fleur de Lys |- | SA9/036 || Ginetta Cars |- | SA9/038 || DAX Cars |- | SA9/039 || Westfield Sportscars |- | SA9/048 || McLaren F1 |- | SA9/050 || Marcos Engineering |- | SA9/062 || AC Cars (Brooklands Ace) |- | SA9/068 || Johnston Sweepers |- | SA9/073 || Tomita Auto UK (Tommykaira ZZ) |- | SA9/074 || Ascari |- | SA9/088 || Spectre Angel |- | SA9/105 || Mosler Europe Ltd. |- | SA9/113 || Noble |- | SA9/130 || MG Sport and Racing |- | SA9/141 || Wrightbus |- | SA9/202 || Morgan 3-Wheeler, Super 3 |- | SA9/207 || Radical Sportscars |- | SA9/211 || BAC (Briggs Automotive Company Ltd.) |- | SA9/225 || Paneltex (truck trailer) |- | SA9/231 || Peel Engineering |- | SA9/337 || Ariel |- | SA9/341 || Zenos |- | SA9/438 || Charge Cars |- | SA9/458 || Gordon Murray Automotive |- | SA9/474 || Mellor (bus) |- | SA9/612 || Tiger Racing (kit car) |- | SA9/621 || AC Cars (Ace) |- | SBB || Leyland Vehicles |- | SBC || Iveco Ford Truck |- | SBF || Nugent (trailer) |- | SBJ || Leyland Bus |- | SBL || Leyland Motors & Leyland DAF |- | SBM || McLaren |- | SBS || Scammell |- | SBU || United Trailers (truck trailer) |- | SBV || Kenworth & Peterbilt [incomplete vehicle] made by Leyland Trucks |- | SBW || Weightlifter Bodies (truck trailer) |- | SB1 || [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing UK |- | SCA || Rolls Royce passenger car |- | SCB || Bentley passenger car |- | SCC || Lotus Cars & Opel Lotus Omega/Vauxhall Lotus Carlton |- | SCD || Reliant Motors |- | SCE || DeLorean Motor Cars N. Ireland (UK) |- | SCF || Aston Martin Lagonda Ltd. passenger car & '21 DBX SUV |- | SCG || Triumph Engineering Co. Ltd. (original Triumph Motorcycle company) |- | SCK || Ifor Williams Trailers |- | SCM || Manitowoc Cranes - Grove |- | SCR || London Electric Vehicle Company & London Taxi Company & London Taxis International |- | SCV || Volvo Truck & Bus Scotland |- | SC5 || Wrightbus (from ~2020) |- | SC6 || INEOS Automotive SUV |- | SDB || Talbot |- | SDC || SDC Trailers Ltd. (truck trailer) |- | SDF || Dodge Trucks – UK 1981–1984 |- | SDG || Renault Trucks Industries 1985–1992 |- | SDK || Caterham Cars |- | SDL || TVR |- | SDP || NAC MG UK & MG Motor UK Ltd. |- | SDU || Utility (truck trailer) |- | SD7 || Aston Martin SUV |- | SD8 || Moke International Ltd. |- | SED || IBC Vehicles (General Motors Luton Plant) (Opel/Vauxhall, 1st gen. Holden Frontera, Isuzu Midi) |- | SEG || Dennis Eagle Ltd., including Renault Trucks Access and D Access |- | SEP || Don-Bur (truck trailer) |- | SEY || LDV Group Ltd. |- | SFA || [[../Ford/VIN Codes|Ford]] UK |- | SFD || Dennis UK / Alexander Dennis |- | SFE || Alexander Dennis UK |- | SFR || Fruehauf (truck trailer) |- | SFN || Foden Trucks & Kenworth [truck] made by Foden Trucks |- | SFZ || Tesla Roadster made by Lotus |- | SGA || Avondale (caravans) |- | SGB || Bailey (caravans) |- | SGD || Swift Group Ltd. (caravans) |- | SGE || Elddis (caravans) |- | SGL || Lunar Caravans Ltd. |- | SG4 || Coachman Caravan Co. Ltd. |- | SG7 || ABI Caravans Ltd. |- | SHH || [[../Honda/VIN Codes|Honda]] UK passenger car |- | SHS || [[../Honda/VIN Codes|Honda]] UK SUV |- | SH2 || The Norton Motorcycle Co., Ltd. (TVS Motor Co. subsidiary) |- | SH7 || INEOS Automotive truck |- | SJA || Bentley SUV |- | SJB || Brian James Trailers Ltd |- | SJK || Nissan Motor Manufacturing UK - Infiniti |- | SJN || Nissan Motor Manufacturing UK - Nissan |- | SJ1 || Ree Automotive |- | SKA || Vauxhall |- | SKB || Kel-Berg Trailers & Trucks |- | SKF || Bedford Vehicles |- | SKL || Anaig (UK) Technology Ltd |- | SKM || King Military Engineering Ltd. |- | SLA || Rolls Royce SUV |- | SLC || Thwaites Dumpers |- | SLG || McMurtry Automotive |- | SLN || Niftylift |- | SLP || JC Bamford Excavators Ltd. |- | SLV || Volvo bus |- | SMR || Montracon (truck trailer) |- | SMT || Triumph Motorcycles Ltd. (current Triumph Motorcycle company) |- | SMW || Cartwright (truck trailer) |- | SMX || Gray & Adams (truck trailer) |- | SNE || Barkas (East Germany) |- | SNE || Wartburg (East Germany) |- | SNT || Trabant (East Germany) |- | SNZ || MZ (motorcycle) (Germany) |- | SPE || B-ON GmbH (Germany) |- | ST3 || Calabrese (truck trailer) |- | SUA || Autosan (bus) |- | SUB || Tramp Trail (trailer) |- | SUC || Wiola (trailer) |- | SUD || Wielton (truck trailers) |- | SUF || FSM/Fiat Auto Poland (Polski Fiat) |- | SUG || Mega Trailers (truck trailer) (Poland) |- | SUJ || Jelcz (Poland) |- | SUL || FSC (Poland) |- | SUM || Novatrail (truck trailers) |- | SUP || FSO/Daewoo-FSO (Poland) |- | SUU || Solaris Bus & Coach (Poland) |- | SU9/AR1 || Emtech (truck trailer) |- | SU9/BU1 || BODEX (truck trailer) |- | SU9/DE2 || Demarco (truck trailer) |- | SU9/EB1 || Elbo (truck trailer) |- | SU9/EZ1 || Enerco (truck trailer) |- | SU9/NC5 || Zasta (truck trailer) |- | SU9/NJ1 || Janmil (truck trailer) |- | SU9/PL1 || Plandex (truck trailer) |- | SU9/PN1 || Solaris Bus & Coach (Poland) - until 2004 |- | SU9/RE1 || Redos (truck trailer) |- | SU9/RE2 || Gromex (trailer) |- | SU9/TR1 || Plavec (truck trailer) |- | SU9/YV1 || Pilea bus/ARP E-Vehicles (Poland) |- | SU9/ZC1 || Wolf (truck trailer) |- | SVH || ZASŁAW (truck trailer) |- | SVM || Inter Cars (truck trailer) |- | SVS || BODEX (truck trailer) |- | SV9/BC2 || BC-LDS (truck trailer) |- | SV9/DR1 || Dromech (truck trailer) |- | SV9/RN1 || Prod-Rent (truck trailer) |- | SWH || Temared (trailers) |- | SWR || Weekend Trailers (trailers) |- | SWV || TA-NO (Poland) |- | SWZ || Zremb (trailers) |- | SW9/BA1 || Solbus |- | SW9/WG3 || Grew / Opalenica (trailer) |- | SXE || Neptun Trailers |- | SXK || Konar (truck trailer) |- | SXM || MELEX Sp. z o.o. |- | SXY || Wecon (truck trailer) |- | SXX || Martz (trailer) |- | SX7 || Arthur Bus |- | SX9/GR0 || GRAS (truck trailer) |- | SX9/KT1 || AMZ - Kutno (bus) |- | SX9/PN1 || Polkon (truck trailer) |- | SX9/SP1 || SOMMER Polska (truck trailer) |- | SYB || Rydwan (trailer) |- | SYG || Gniotpol, GT Trailers Sp. z o. o. (truck trailer) |- | SY1 || Neso Bus (PAK-PCE Polski Autobus Wodorowy) |- | SY9/FR1 || Feber (truck trailer) |- | SY9/PF1 || KEMPF (truck trailer) |- | SZA || Scania Poland |- | SZC || Vectrix (motorcycle) |- | SZL || Boro Trailers |- | SZN || Przyczepy Głowacz (trailer) |- | SZR || Niewiadów (trailer) |- | SZ9/AE6 || Gewe (trailer) |- | SZ9/BG1 || GALA Syriusz (trailer) |- | SZ9/PW1 || PRO-WAM (truck trailer) |- | SZ9/TU1 || Ovibos (truck trailer) |- | S19/AM0 || AMO Plant (bus) (Latvia) |- | S19/EF1 || Electrify (minibus) (Latvia) |- | S19/MT0 || Mono-Transserviss (truck trailer) (Latvia) |- | TAW || NAW Nutzfahrzeuggesellschaft Arbon & Wetzikon AG (Switzerland) |- | TBS || Boschung AG (Switzerland) |- | TCC || Micro Compact Car AG (smart 1998-1999) (Switzerland) |- | TDM || QUANTYA Swiss Electric Movement (Switzerland) |- | TEB || Bucher Municipal AG (includes Johnston Sweepers) (Switzerland) |- | TEM || Twike (SwissLEM AG) (Switzerland) |- | TFH || FHS Frech-Hoch AG (truck trailer) (Switzerland) |- | TH9/512 || Hess AG (bus, trolleybus) (Switzerland) |- | TJ5 || Vezeko (trailer) (Czech Republic) |- | TKP || Panav a.s. (truck trailer) (Czech Republic) |- | TKX || Agados s.r.o. (trailer) (Czech Republic) |- | TKY || Metaco (truck trailer) (Czech Republic) |- | TK9/AH3 || Atmos Chrást s.r.o. (Czech Republic) |- | TK9/AP3 || Agados, spol. s.r.o. (trailer) (Czech Republic) |- | TK9/HP1 || Hipocar (truck trailer) (Czech Republic) |- | TK9/PP7 || Paragan Trucks (truck trailer) (Czech Republic) |- | TK9/SL5 || SOR Libchavy buses (Czech Republic) |- | TK9/SS5 || SVAN Chrudim (truck trailer) (Czech Republic) |- | TLJ || Jawa Moto (Czech Republic) |- | TMA || [[../Hyundai/VIN Codes|Hyundai]] Motor Manufacturing Czech |- | TMB || Škoda Auto|Škoda (Czech Republic) |- | TMC || [[../Hyundai/VIN Codes|Hyundai]] Motor Manufacturing Czech (SUV) |- | TMK || Karosa (Czech Republic) |- | TMP || Škoda trolleybuses (Czech Republic) |- | TMT || Tatra passenger car (Czech Republic) |- | TM9/CA2 || Oasa bus (Oprava a stavba automobilů) (Czech Republic) |- | TM9/SE3 || Škoda Transportation trolleybuses (Czech Republic) |- | TM9/SE4 || Škoda Transportation trolleybuses (Czech Republic) |- | TM9/TE6 || TEDOM bus (Czech Republic) |- | TNA || Avia/Daewoo Avia |- | TNE || TAZ |- | TNG || LIAZ (Liberecké Automobilové Závody) |- | TNT || Tatra trucks |- | TNU || Tatra trucks |- | TN9/EE7 || Ekova (bus) (Czech Republic) |- | TN9/VP5 || VPS (truck trailer) |- | TRA || Ikarus Bus |- | TRC || Csepel bus |- | TRE || Rákos bus |- | TRK || Credo bus/Kravtex (Hungary) |- | TRR || Rába Bus (Hungary) |- | TRU || Audi Hungary (TT/TTS, '12-'13 TT RS) |- | TSB || Ikarus Bus |- | TSC || VIN assigned by the National Transport Authority of Hungary |- | TSE || Ikarus Egyedi Autobuszgyar (EAG) (Hungary) |- | TSF || Alfabusz (Hungary) |- | TSM || Suzuki Hungary (Magyar Suzuki),<br> Fiat Sedici made by Suzuki, Subaru Justy G3X made by Suzuki, Suzuki Swace made by Toyota UK (TMUK) |- | TSY || Keeway Motorcycles (Hungary) |- | TS9/111 || NABI Autóbuszipari (bus) (Hungary) |- | TS9/130 || Enterprise Bus (Hungary) |- | TS9/131 || MJT bus (Hungary) |- | TS9/156 || Ikarus / ARC (Auto Rad Controlle Kft.) bus (Hungary) |- | TS9/167 || Hungarian Bus Kft. (Hungary) |- | TS9/170 || Csaba Metál bus (Hungary) |- | TT9/117 || Ikarus Egyedi Autobusz Gyarto Kft. / Magyar Autóbuszgyártó Kft. / MABI (Hungary) |- | TT9/123 || Ikarus Global Zrt. (Hungary) |- | TWG || CaetanoBus (Portugal) |- | TW0 || CaetanoBus (Portugal) |- | TW1 || Toyota Caetano Portugal, S.A. (Toyota Coaster, Dyna, Optimo, Land Cruiser 70 Series) |- | TW2 || [[../Ford/VIN Codes|Ford]] Lusitana (Portugal) |- | TW4 || UMM (Portugal) |- | TW6 || Citroën (Portugal) |- | TW7 || Mini Moke made by British Leyland & Austin Rover Portugal |- | TX5 || Mini Moke made by Cagiva (Moke Automobili) |- | TX9/046 || Riotrailer (truck trailer) (Portugal) |- | TYA || Mitsubishi Fuso Truck and Bus Corp. Portugal (right-hand drive) |- | TYB || Mitsubishi Fuso Truck and Bus Corp. Portugal (left-hand drive) |- | T3C || Lohr Backa Topola (truck trailer) (Serbia) |- | T49/BG7 || FAP (Serbia) |- | T49/BH8 || Megabus (bus) (Serbia) |- | T49/BM2 || Feniksbus (minibus) (Serbia) |- | T49/V16 || MAZ made by BIK (bus) (Serbia) |- | T7A || Ebusco (Netherlands) |- | UA1 || AUSA Center (Spain) |- | UA2 || Iveco Massif & Campagnola made by Santana Motors in Spain |- | UA4 || Irizar e-mobility (Spain) |- | UCY || Silence Urban Ecomobility (Spain) |- | UD3 || Granalu truck trailers (Belgium) |- | UHE || Scanvogn (trailer) (Denmark) |- | UHL || Camp-let (recreational vehicle) (Denmark) |- | UH2 || Brenderup (trailer) (Denmark) |- | UH2 || De Forenede Trailerfabrikke (trailer) (Denmark) |- | UH9/DA3 || DAB - Danish Automobile Building (acquired by Scania) (Denmark) |- | UH9/EM1 || Egholm (Denmark) |- | UH9/FK1 || Dapa Trailer (truck trailer) (Denmark) |- | UH9/HF1 || HFR Trailer A/S (truck trailer) (Denmark) |- | UH9/HM1 || HMK Bilcon A/S (truck trailer) (Denmark) |- | UH9/NS1 || Nopa (truck trailer) (Denmark) |- | UH9/NT1 || Nordic Trailer (truck trailer) (Denmark) |- | UH9/VM2 || VM Tarm a/s (truck trailer) (Denmark) |- | UJG || Garia ApS - Club Car (Denmark) |- | UKR || Hero Camper (Denmark) |- | UMT || MTDK a/s (truck trailer) (Denmark) |- | UN1 || [[../Ford/VIN Codes|Ford]] Ireland |- | UN9/012 || Duffy Coachbodies (Ireland) |- | UN9/089 || Brian Noone Ltd. bus (Ireland) |- | UU1 || Dacia (Romania) |- | UU2 || Oltcit |- | UU3 || ARO |- | UU4 || Roman/Grivbuz |- | UU5 || Rocar |- | UU6 || Daewoo Romania |- | UU7 || Euro Bus Diamond |- | UU9 || Astra Bus |- | UVW || UMM (truck trailer) |- | UV9/AT1 || ATP Trucks, ATP Bus |- | UWR || Robus Reșița |- | UZT || UTB (Uzina de Tractoare Brașov) |- | U1A || Sanos (North Macedonia) |- | U1V || VDL Van Hool Macedonia (North Macedonia) |- | U5Y || Kia Motors Slovakia |- | U59/AS0 || ASKO (truck trailer) |- | U6A || Granus (bus) (Slovakia) |- | U6Y || Kia Motors Slovakia |- | U69/NL1 || Novoplan (bus) (Slovakia) |- | U69/SB1 || SlovBus (bus) |- | U69/TR8 || Troliga Bus (Slovakia) |- | VAG || Steyr-Daimler-Puch Puch G & Steyr-Puch Pinzgauer |- | VAH || Hangler (truck trailer) |- | VAK || Kässbohrer Transport Technik |- | VAN || MAN Austria/Steyr-Daimler-Puch Steyr Trucks |- | VAV || Schwarzmüller |- | VAX || Schwingenschlogel (truck trailer) |- | VA0 || ÖAF, Gräf & Stift |- | VA4 || KSR Group (motorcycle) |- | VA9/GS0 || Gsodam Fahrzeugbau (truck trailer) |- | VA9/RB1 || Rosenbauer International AG (truck) |- | VA9/ZT0 || Berger Fahrzeugtechnik (truck trailer) |- | VBF || Fit-Zel (trailer) |- | VBK || KTM |- | VBK || Husqvarna Motorcycles & Gas Gas under KTM ownership |- | VCF || Fisker Inc. (Fisker Ocean) made by Magna Steyr |- | VFA || Alpine (A310, A610, A110, A390), Renault Alpine GTA |- | VFG || Caravelair (caravans) |- | VFK || Fruehauf (truck trailers) |- | VFN || Trailor, General Trailers (truck trailers) |- | VF1 || Renault, Renault GTA '87-'90 (UK market Alpine GTA), Mobilize Duo, Eagle Medallion made by Renault,<br> Opel/Vauxhall Arena made by Renault, Mitsubishi ASX, Colt, Grandis, & Eclipse Cross EV made by Renault |- | VF2 || Renault Trucks |- | VF3 || Peugeot |- | VF4 || Talbot |- | VF5 || Iveco Unic |- | VF6 || Renault Trucks including vans made by Renault S.A. & Maxity truck made by Nissan Motor Ibérica S.A. |- | VF7 || Citroën |- | VF8 || Matra Automobiles (Talbot-Matra Murena, Rancho made by Matra, Renault Espace I/II/III, Avantime made by Matra) |- | VF9/024 || Legras Industries (truck trailer) |- | VF9/045 || Nardeau SAS (truck trailer) |- | VF9/049 || G. Magyar (truck trailer) |- | VF9/063 || Maisonneuve (truck trailer) |- | VF9/132 || Jean CHEREAU S.A.S. (truck trailer) |- | VF9/300 || EvoBus France |- | VF9/435 || Merceron (truck trailer) |- | VF9/519 || Hommell |- | VF9/607 || Mathieu (sweeper) |- | VF9/673 || Venturi Automobiles |- | VF9/795 || [[../Bugatti/VIN Codes|Bugatti Automobiles S.A.S.]] |- | VF9/848 || G. Magyar (truck trailer) |- | VF9/880 || Bolloré Bluebus |- | VF9/938 || SAFRA (bus) |- | VGA || Peugeot Motocycles |- | VGT || ASCA (truck trailers) |- | VGU || Trouillet (truck trailers) |- | VGW || BSLT (truck trailers) |- | VGX || Coder (truck trailers) |- | VGY || Lohr (truck trailers) |- | VG5 || MBK (motorcycles) & Yamaha Motor |- | VG6 || Renault Trucks & Mack Trucks medium duty trucks made by Renault Trucks |- | VG7 || Renault Trucks |- | VG8 || Renault Trucks |- | VG9/019 || Naya (autonomous vehicle) |- | VG9/061 || Alstom-NTL Aptis (bus) |- | VHR || Robuste (truck trailer) |- | VHX || Manitowoc Cranes - Potain |- | VH1 || Benalu SAS (truck trailer) |- | VH8 || Microcar |- | VJR || Ligier |- | VJY || Gruau |- | VJ1 || Heuliez Bus |- | VJ2 || Mia Electric |- | VJ4 || Gruau |- | VKD || Cheval Liberté (horse trailer) |- | VK1 || SEG (truck trailer) |- | VK2 || Grandin Automobiles |- | VK8 || Venturi Automobiles |- | VLG || Aixam-Mega |- | VLU || Scania France |- | VL4 || Bluecar, Citroen E-Mehari |- | VMK || Renault Sport Spider |- | VMS || Automobiles Chatenet |- | VMT || SECMA |- | VMW || Gépébus Oréos 55 |- | VM3 || Lamberet (trailer) |- | VM3 || Chereau (truck trailer) |- | VN1 || Renault SOVAB (France), Opel/Vauxhall Movano A made at SOVAB |- | VN4 || Voxan |- | VNB || Sherco Motorcycles SARL |- | VNE || Iveco Bus/Irisbus (France) |- | VNK || [[../Toyota/VIN Codes|Toyota]] Motor Manufacturing France & '11-'13 Daihatsu Charade (XP90) made by TMMF |- | VNV || Nissan made in France by Renault |- | VPG || MPM Motors |- | VPL || Nosmoke S.A.S |- | VP3 || G. Magyar (truck trailers) |- | VRW || Goupil |- | VR1 || DS Automobiles |- | VR3 || Peugeot (under Stellantis) |- | VR7 || Citroën (under Stellantis) |- | VSA || Mercedes-Benz Spain |- | VSC || Talbot |- | VSE || Santana Motors (Land Rover Series-based models) & Suzuki SJ/Samurai, Jimny, & Vitara made by Santana Motors in Spain |- | VSF || Santana Motors (Anibal/PS-10, 300/350) |- | VSK || Nissan Motor Iberica SA, Nissan passenger car/MPV/van/SUV/pickup & Ford Maverick 1993–1999 |- | VSR || Leciñena (truck trailers) |- | VSS || SEAT/Cupra |- | VSX || Opel Spain |- | VSY || Renault V.I. Spain (bus) |- | VS1 || Pegaso |- | VS5 || Renault Spain |- | VS6 || [[../Ford/VIN Codes|Ford]] Spain |- | VS7 || Citroën Spain |- | VS8 || Peugeot Spain |- | VS9/001 || Setra Seida (Spain) |- | VS9/011 || Advanced Design Tramontana |- | VS9/013 || Mirofret (truck trailer) (Spain) |- | VS9/016 || Irizar bus (Spain) |- | VS9/019 || Cobos Hermanos (truck trailer) (Spain) |- | VS9/031 || Carrocerias Ayats (Spain) |- | VS9/032 || Parcisa (truck trailer) (Spain) |- | VS9/044 || Beulas bus (Spain) (Spain) |- | VS9/047 || Indox (truck trailers) (Spain) |- | VS9/052 || Montull (truck trailer) (Spain) |- | VS9/057 || SOR Ibérica (truck trailers) (Spain) |- | VS9/072 || Mecanicas Silva (truck trailer) (Spain) |- | VS9/098 || Sunsundegui bus (Spain) |- | VS9/172 || EvoBus Iberica |- | VS9/917 || Nogebus (Spain) |- | VTD || Montesa Honda (Honda Montesa motorcycle models) |- | VTH || Derbi (motorcycles) |- | VTL || Yamaha Spain (motorcycles) |- | VTM || Montesa Honda (Honda motorcycle models) |- | VTP || Rieju S.A. (motorcycles) |- | VTR || Gas Gas |- | VTT || Suzuki Spain (motorcycles) |- | VVC || SOR Ibérica (truck trailers) |- | VVG || Tisvol (truck trailers) |- | VV1 || Lecitrailer Group (truck trailers) |- | VV5 || Prim-Ball (truck trailers) |- | VV9/ || [[wikipedia:Tauro Sport Auto|TAURO]] Sport Auto Spain |- | VV9/010 || Castrosúa bus (Spain) |- | VV9/125 || Indetruck (truck trailers) |- | VV9/130 || Vectia Mobility bus (Spain) |- | VV9/130 || UNVI bus (Spain) |- | VV9/359|| Hispano-Suiza |- | VWA || Nissan Vehiculos Industriales SA, Nissan Commercial Vehicles |- | VWF || Guillén Group (truck trailers) |- | VWL || Indox (truck trailers) |- | VWV || Volkswagen Spain |- | VXE || Opel Automobile Gmbh/Vauxhall van |- | VXF || Fiat van (Fiat Scudo, Ulysse '22-) |- | VXK || Opel Automobile Gmbh/Vauxhall car/SUV |- | VXY || Neobus a.d. (Serbia) |- | VX1 || [[w:Zastava Automobiles|Zastava Automobiles]] / [[w:Yugo|Yugo]] (Yugoslavia/Serbia) |- | VYC || Lancia Ypsilon (4th gen.) |- | VYE || Jeep Compass (3rd gen. - EU market '26-) |- | VYF || Fiat Doblo '23- & Fiat Topolino '23- & Fiat Grande Panda '25- |- | VYJ || Ram 1200 '25- (sold in Mexico) |- | VYS || Renault & Alpine made by Ampere (Renault 5 E-Tech, Renault 4 E-Tech, Alpine A290) |- | VZ2 || Avtomontaža (bus) (Slovenia) |- | V1Y || FAS Sanos bus (Yugoslavia/North Macedonia) |- | V2X || Ikarbus a.d. (Serbia) |- | V31 || Tvornica Autobusa Zagreb (TAZ) (Croatia) |- | V34 || Crobus bus (Croatia) |- | V39/AB8 || Rimac Automobili (Croatia) |- | V39/CB3 || Eurobus (Croatia) |- | V39/WB4 || Rasco (machinery) (Croatia) |- | V6A || Bestnet AS; Tiki trailers (Estonia) |- | V6B || Brentex-Trailer (Estonia) |- | V6T || Verge Motorcycles (Estonia) |- | V61 || Respo Trailers (Estonia) |- | WAC || Arge Audi Porsche (Audi/Porsche RS2 Avant) |- | WAF || Ackermann (truck trailer) |- | WAG || Neoplan |- | WAP || Alpina |- | WAU || Audi car |- | WA1 || Audi SUV |- | WBA || BMW car |- | WBC || Boom Trikes |- | WBJ || Bitter Cars |- | WBK || Böcker Maschinenwerke GmbH |- | WBL || Blumhardt (truck trailers) |- | WBS || BMW M car |- | WBU || Bürstner (caravans) |- | WBX || BMW SUV |- | WBY || BMW i car |- | WB0 || Böckmann Fahrzeugwerke GmbH (trailers) |- | WB1 || BMW Motorrad |- | WB2 || Blyss (trailer) |- | WB3 || BMW Motorrad Motorcycles made in India by TVS |- | WB4 || BMW Motorrad Motorscooters made in China by Loncin |- | WB5 || BMW i SUV |- | WCD || Freightliner Sprinter "bus" (van with more than 3 rows of seats) 2008–2019 |- | WCM || Wilcox (truck trailer) |- | WDA || Mercedes-Benz incomplete vehicle (North America) |- | WDB || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] & Maybach |- | WDC || Mercedes-Benz SUV |- | WDD || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] car |- | WDF || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] van/pickup (French & Spanish built models – Citan & Vito & X-Class) |- | WDP || Freightliner Sprinter incomplete vehicle 2005–2019 |- | WDR || Freightliner Sprinter MPV (van with 2 or 3 rows of seats) 2005–2019 |- | WDT || Dethleffs (caravans) |- | WDW || Dodge Sprinter "bus" (van with more than 3 rows of seats) 2008–2009 |- | WDX || Dodge Sprinter incomplete vehicle 2005–2009 |- | WDY || Freightliner Sprinter truck (cargo van with 1 row of seats) 2005–2019 |- | WDZ || Mercedes-Benz "bus" (van with more than 3 rows of seats) (North America) |- | WD0 || Dodge Sprinter truck (cargo van with 1 row of seats) 2005–2009 |- | WD1 || Freightliner Sprinter 2002 & Sprinter (Dodge or Freightliner) 2003–2005 incomplete vehicle |- | WD2 || Freightliner Sprinter 2002 & Sprinter (Dodge or Freightliner) 2003–2005 truck (cargo van with 1 row of seats) |- | WD3 || Mercedes-Benz truck (cargo van with 1 row of seats) (North America) |- | WD4 || Mercedes-Benz MPV (van with 2 or 3 rows of seats) (North America) |- | WD5 || Freightliner Sprinter 2002 & Sprinter (Dodge or Freightliner) 2003–2005 MPV (van with 2 or 3 rows of seats) |- | WD6 || Freightliner Unimog truck |- | WD7 || Freightliner Unimog incomplete vehicle |- | WD8 || Dodge Sprinter MPV (van with 2 or 3 rows of seats) 2005–2009 |- | WEB || Evobus GmbH (Mercedes-Benz buses) |- | WEG || Ablinger (trailer) |- | WEL || e.GO Mobile AG |- | WFB || Feldbinder Spezialfahrzeugwerke GmbH |- | WFC || Fendt (caravans) |- | WFD || Fliegl Trailer |- | WFN || Tadano Faun GmbH |- | WF0 || [[../Ford/VIN Codes|Ford]] Germany |- | WF1 || Merkur |- | WGB || Göppel Bus GmbH |- | WG0 || Goldhofer AG (truck trailer) |- | WHB || Hobby - Wohnwagenwerk, Ing. H. Striewski GmbH (recreational vehicles) |- | WHD || Humbaur GmbH (truck trailer) |- | WHL || Hulco (trailer) |- | WHW || Hako GmbH |- | WHY || Hymer GmbH & Co. KG (recreational vehicles) |- | WH7 || Hüfferman (truck trailer) |- | WJM || Iveco/Iveco Magirus |- | WJR || Irmscher |- | WKE || Krone (truck trailers) |- | WKK || Setra (Evobus GmbH; formerly Kässbohrer) |- | WKN || Knaus, Weinsberg (caravans) |- | WKV || Kässbohrer Fahrzeugwerke Gmbh (truck trailers) |- | WK0 || Kögel (truck trailers) |- | WLA || Langendorf semi-trailers |- | WLF || Liebherr (mobile crane) |- | WMA || MAN Truck & Bus |- | WME || smart (from 5/99) |- | WMG || Demag Cranes |- | WMM || Karl Müller GmbH & Co. KG (truck trailers) |- | WMP || M & V GmbH (truck trailers) |- | WMU || Hako GmbH (Multicar) |- | WMW || MINI car |- | WMX || Mercedes-AMG used for Mercedes-Benz SLS AMG & Mercedes-AMG GT & Mercedes-AMG One (not used in North America) |- | WMZ || MINI SUV |- | WNA || Next.e.GO Mobile SE |- | WP0 || Porsche car |- | WP1 || Porsche SUV |- | WRA || Renders (truck trailers) |- | WRJ || Riese & Müller (bicycle) |- | WSE || STEMA Metalleichtbau GmbH (trailers) |- | WSJ || STERK Trailers (truck trailers) |- | WSK || Schmitz-Cargobull Gotha (truck trailers) |- | WSM || Schmitz-Cargobull (truck trailers) |- | WSP || Spitzer (truck trailers) |- | WSV || Aebi Schmidt Group |- | WS5 || StreetScooter |- | WS7 || Sono Motors |- | WTA || Tabbert (caravans) |- | WUA || Audi Sport GmbH (formerly quattro GmbH) car <br> (includes '04-'09 S4 Cabriolet & '06 S4 25quattro Special Edition sedan & '16-'18 S8 Plus & non-North American mkt. Q7 V12 TDI) |- | WU1 || Audi Sport GmbH (formerly quattro GmbH) SUV |- | WVG || Volkswagen SUV & Touran & N. American mkt. ID Buzz '25 |- | WVM || Arbeitsgemeinschaft VW-MAN |- | WVP || Viseon Bus |- | WVW || Volkswagen passenger car, Sharan, Golf Plus, Golf Sportsvan |- | WV1 || Volkswagen Commercial Vehicles (cargo van or 1st gen. Amarok) |- | WV2 || Volkswagen Commercial Vehicles (passenger van or minibus) |- | WV3 || Volkswagen Commercial Vehicles (incomplete vehicle: chassis cab/cutaway)<br> [includes Winnebago Rialta ('97-'04), Winnebago Vista ('02-'04), Itasca Sunstar ('02-'04)] |- | WV4 || Volkswagen Commercial Vehicles (2nd gen. Amarok & T7 Transporter made by Ford) |- | WV5 || Volkswagen Commercial Vehicles (T7 Caravelle made by Ford) |- | WWA || Wachenhut (truck trailer) |- | WWC || WM Meyer (truck trailer) |- | WZ1 || Toyota Supra (Fifth generation for North America) |- | W0D || Obermaier (truck trailer) |- | W0L || Adam Opel AG/Vauxhall & Holden |- | W0L || Holden Zafira & Subaru Traviq made by GM Thailand |- | W0V || Opel Automobile Gmbh/Vauxhall & Holden (since 2017) |- | W04 || Buick Regal & Buick Cascada |- | W06 || Cadillac Catera |- | W08 || Saturn Astra |- | W09/A55 || Artega Automobile |- | W09/A71 || Apollo |- | W09/B09 || Bitter Cars |- | W09/B16 || Brabus |- | W09/B48 || Bultmann (trailer) |- | W09/B91 || Boerner (truck trailer) |- | W09/C09 || Carnehl Fahrzeugbau (truck trailer) |- | W09/D04 || DOLL (truck trailer) |- | W09/D05 || Drögmöller (bus) |- | W09/D17 || Dinkel (truck trailer) |- | W09/E04 || Eder (trailer) |- | W09/E27 || Esterer (truck trailer) |- | W09/E32 || ES-GE (truck trailer) |- | W09/E45 || Eurotank (truck trailer) |- | W09/F46 || FSN Fahrzeugbau (truck trailer) |- | W09/F57 || Twike |- | W09/G10 || GOFA (truck trailer) |- | W09/G64 || Gumpert |- | W09/H10 || Heitling Fahrzeugbau |- | W09/H21|| Dietrich Hisle GmbH (truck trailer) |- | W09/H46 || Hendricks (truck trailer) |- | W09/H49 || H&W Nutzfahrzeugtechnik GmbH (truck trailer) |- | W09/J02 || Isdera |- | W09/K27 || Krupp |- | W09/K27 || Kotschenreuther (truck trailer) |- | W09/L05 || Liebherr |- | W09/L06 || LMC Caravan (recreational vehicles) |- | W09/M08 || MEILLER Kipper (truck trailer) |- | W09/M09 || Meierling (truck trailer) |- | W09/M29 || MAFA (truck trailer) |- | W09/M40 || Franz Mersch (trailer) |- | W09/M79 || MKF Matallbau (truck trailer) |- | W09/N22 || NFP-Eurotrailer (truck trailer) |- | W09/P13 || Pagenkopf (truck trailer) |- | W09/P72 || De Tomaso Automobili (Capricorn) |- | W09/R06 || RUF |- | W09/R14 || Rancke (truck trailer) |- | W09/R27 || Gebr. Recker Fahrzeugbau (truck trailer) |- | W09/R30 || Reisch (truck trailer) |- | W09/R38 || Rewaco |- | W09/SG0 || Sileo (bus) |- | W09/SG1 || SEKA (truck trailer) |- | W09/S24 || Sommer (truck trailer) |- | W09/S25 || Spermann (truck trailer) |- | W09/S27 || Schröder (truck trailer) |- | W09/W11 || Wilken (truck trailer) |- | W09/W14 || Weka (truck trailer) |- | W09/W16 || Wellmeyer (truck trailer) |- | W09/W20 || Kurt Willig GmbH & Co. KG (truck trailer) |- | W09/W29 || Wiese (truck trailer) |- | W09/W35 || Wecon GmbH (truck trailer) |- | W09/W46 || WT-Metall (trailer) |- | W09/W59 || Wiesmann |- | W09/W70 || Wüllhorst (truck trailer) |- | W09/W86 || Web Trailer GmbH (truck trailer) |- | W09/004 || ORTEN Fahrzeugbau (truck trailer) |- | W1A || smart |- | W1H || Freightliner Econic |- | W1K || Mercedes-Benz car |- | W1N || Mercedes-Benz SUV |- | W1T || Mercedes-Benz truck |- | W1V || Mercedes-Benz van |- | W1W || Mercedes-Benz MPV (van with 2 or 3 rows of seats) (North America) |- | W1X || Mercedes-Benz incomplete vehicle (North America) |- | W1Y || Mercedes-Benz truck (cargo van with 1 row of seats) (North America) |- | W1Z || Mercedes-Benz "bus" (van with more than 3 rows of seats) (North America) |- | W2W || Freightliner Sprinter MPV (van with 2 or 3 rows of seats) |- | W2X || Freightliner Sprinter incomplete vehicle |- | W2Y || Freightliner Sprinter truck (cargo van with 1 row of seats) |- | W2Z || Freightliner Sprinter "bus" (van with more than 3 rows of seats) |- | XDN || Mercedes Sprinter Classic made by GAZ (Russia) |- | XD2 || CTTM Cargoline (truck trailer) (Russia) |- | XEA || AmberAvto (Avtotor) (Russia) |- | XE2 || AMKAR Automaster (truck trailer) (Russia) |- | XF9/B24 || NK Trailers (truck trailer) (Greece) |- | XF9/D44 || Militsis (trailer) (Greece) |- | XF9/J03 || Christos Nezis (truck trailer) (Greece) |- | XF9/J63 || Kaoussis (truck trailer) (Greece) |- | XG3 || Petros Petropoulos Group - Ecoshift NOOS electric motorscooters (Greece) |- | XG4|| Mpitis (trailer) (Greece) |- | XG5 || Stavropoulos trailers (Greece) |- | XG6 || MGK Hellenic Motor motorcycles (Greece) |- | XG8 || Gorgolis SA motorcycles (Greece) |- | XG9/B01 || Sfakianakis bus Greece |- | XG9/H33 || Rappas Trailer (Greece) |- | XG9/H51 || Eurotrailer Tourlakopoulos (trailer) (Greece) |- | XG9/H92 || Diamantis N. & Co. (trailer) (Greece) |- | XΗ9/B21 || Hellenic Vehicle Industry - ELVO bus Greece |- | XH9/H08 || Poseidonas Litsakis (trailer) (Greece) |- | XH9/H34 || Flexi-Wheels (trailer) (Greece) |- | XJY || Bonum (truck trailer) (Russia) |- | XJ4 || PKTS (PK Transportnye Sistemy) bus (Russia) |- | XKM || Volgabus (Russia) |- | XLA || DAF Bus International |- | XLB || Volvo Car B.V./NedCar B.V. (Volvo Cars) |- | XLC || [[../Ford/VIN Codes|Ford]] Netherlands |- | XLD || Pacton Trailers B.V. |- | XLE || Scania Netherlands |- | XLH || Hapert (trailer) |- | XLJ || Anssems (trailer) |- | XLK || Burg Trailer Service BV (truck trailer) |- | XLR || DAF Trucks & Leyland DAF |- | XLU || Henra (trailer) |- | XLV || DAF Bus |- | XLW || Terberg Benschop BV |- | XL3 || Ebusco |- | XL4 ||Lightyear |- | XL9/001 || ESVE BV (truck trailers) |- | XL9/002 || Jumbo Groenewegen (truck trailers) |- | XL9/003 || Autobusfabriek Bova BV |- | XL9/004 || G.S. Meppel (truck trailers) |- | XL9/007|| Broshuis BV (truck trailer) |- | XL9/010|| Ginaf Trucks |- | XL9/014 || Contar (truck trailer) |- | XL9/017 || Van Eck (truck trailer) |- | XL9/021 || Donkervoort Cars |- | XL9/033 || Wijer (trailer) |- | XL9/039 || Talson (truck trailer) |- | XL9/042 || Den Oudsten Bussen |- | XL9/052 || Witteveen (trailer) |- | XL9/055 || Fripaan (truck trailer) |- | XL9/067 || HTF (truck trailer) |- | XL9/068 || Vogelzang (truck trailer) |- | XL9/069 || Kraker (truck trailer) |- | XL9/070 || Veldhuizen (truck trailers) |- | XL9/073 || Zwalve (truck trailers) |- | XL9/074 || Draco (truck trailers) |- | XL9/081 || EBO van Weel (truck trailers) |- | XL9/084 || Vocol (truck trailers) |- | XL9/089 || Meijvo (trailers) |- | XL9/092 || Bulthuis (truck trailers) |- | XL9/103 || D-TEC (truck trailers) |- | XL9/109|| Groenewold Carrosseriefabriek B.V. (car transporter) |- | XL9/150 || Univan (truck trailer) |- | XL9/251 || Spierings Mobile Cranes |- | XL9/320 || VDL Bova bus |- | XL9/348 || HOKA (trailer) |- | XL9/355 || Berdex (truck trailer) |- | XL9/363 || Spyker |- | XL9/423 || Tijhof (trailer) |- | XL9/461 || BK Market Trailers (trailer) |- | XL9/495 || BE-Combi (truck trailer) |- | XL9/508 || Talson (truck trailer) |- | XL9/527 || GINAF |- | XL9/530 || Ebusco |- | XL9/611 || Zocon (trailer) |- | XMC || NedCar B.V. Mitsubishi Motors (LHD) |- | XMD || NedCar B.V. Mitsubishi Motors (RHD) |- | XMG || VDL Bus International |- | XMR || Nooteboom Trailers |- | XM4 || RAVO Holding B.V. (sweeper) |- | XNB || NedCar B.V. Mitsubishi Motors made by Pininfarina (Colt CZC convertible - RHD) |- | XNC || NedCar B.V. Mitsubishi Motors made by Pininfarina (Colt CZC convertible - LHD) |- | XNJ || Broshuis (truck trailer) |- | XNL || VDL Bus & Coach |- | XNT || Pacton Trailers B.V. (truck trailer) |- | XN1 || Kraker Trailers Axel B.V. (truck trailer) |- | XPN || Knapen Trailers |- | XPP || Atec Trailers |- | XP7 || Tesla Europe (based in the Netherlands) (Gigafactory Berlin-Brandenburg) |- | XRP || Proline (trailer) |- | XRY || D-TEC (truck trailer) |- | XR7 || Qarry |- | XTA || Lada / AvtoVAZ (Russia) |- | XTB || Moskvitch / AZLK (Russia) |- | XTC || KAMAZ (Russia) |- | XTD || LuAZ (Ukraine) |- | XTE || ZAZ (Ukraine) |- | XTF || GolAZ (Russia) |- | XTH || GAZ (Russia) |- | XTJ || Lada Oka made by SeAZ (Russia) |- | XTK || IzhAvto (Russia) |- | XTM || MAZ (Belarus); used until 1997 |- | XTP || Ural (Russia) |- | XTS || ChMZAP (truck trailer) |- | XTT || UAZ / Sollers (Russia) |- | XTU || Trolza, previously ZiU (Russia) |- | XTW || LAZ (Ukraine) |- | XTY || LiAZ (Russia) |- | XTZ || ZiL (Russia) |- | XUF || General Motors Russia |- | XUS || Nizhegorodets (minibus) (Russia) |- | XUU || Avtotor (Russia, Chevrolet Korea SKD, Kaiyi Auto) |- | XUV || Avtotor (DFSK, SWM) |- | XUZ || InterPipeVAN (truck trailer) |- | XU6 || Avtodom (minibus) (Russia) |- | XVG || MARZ (bus) (Russia) |- | XVU || Start (truck trailer) |- | XW7 || Toyota Motor Manufacturing Russia |- | XW8 || Volkswagen Group Russia (VW, Skoda) |- | XWB || UZ-Daewoo/GM Uzbekistan/Ravon/UzAuto Motors (Uzbekistan) |- | XWB || Avtotor (Russia, BAIC SKD) |- | XWE || Avtotor (Russia, Hyundai-Kia SKD) |- | XWF || Avtotor (Russia, Chevrolet Tahoe/Opel/Cadillac/Hummer SKD) |- | XX3 || Ujet Manufacturing (Luxembourg) |- | XZB || SIMAZ (bus) (Russia) |- | XZE || Specpricep (truck trailer) |- | XZG || Great Wall Motor (Haval Motor Rus) |- | XZP || Gut Trailer (truck trailer) |- | XZT || FoxBus (minibus) (Russia) |- | X1D || RAF (Rīgas Autobusu Fabrika) (Latvia) |- | X1E || KAvZ (Russia) |- | X1F || NefAZ (Russia) |- | X1M || PAZ (Russia) |- | X1P || Ural (Russia) |- | X2L || Fox Trailer (truck trailer) (Russia) |- | X21 || Diesel-S (truck trailer) (Russia) |- | X4K || Volgabus (Volzhanin) (Russia) |- | X4T || Sommer (truck trailer) (Russia) |- | X4X || Avtotor (Russia, BMW SKD) |- | X5A || UralSpetzTrans (trailer) (Russia) |- | X6D || VIS-AVTO (Russia) |- | X6S || TZA (truck trailer) (Russia) |- | X7L || Renault AvtoFramos (1998-2014), Renault Russia (2014-2022), Moskvitch (2022-) (Russia) |- | X7M || [[../Hyundai/VIN Codes|Hyundai]] & Vortex (rebadged Chery) made by TagAZ (Russia) |- | X89/AD4 || ВМЗ (VMZ) bus |- | X89/BF8 || Rosvan bus |- | X89/CU2 || EvoBus Russland (bus) |- | X89/DJ2 || VMK (bus) |- | X89/EY4 || Brabill (minibus) |- | X89/FF6 || Lotos (bus) |- | X89/FY1 || Sherp |- | X8J || IMZ-Ural Ural Motorcycles |- | X8U || Scania Russia |- | X9F || Ford Motor Company ZAO |- | X9L || GM-AvtoVAZ |- | X9N || Samoltor (minibus) |- | X9P || Volvo Vostok ZAO (Volvo Trucks) |- | X9W || Brilliance, Lifan made by Derways |- | X9X || Great Wall Motors |- | X96 || GAZ |- | X99/000 || Marussia |- | X90 || GRAZ (truck trailer) |- | X0T || Tonar (truck trailer) |- | YAF || Faymonville (special transport trailers) |- | YAG || Syma aanhangwagenbouw BV (trailers) |- | YAM || MAX Trailer (truck trailers) |- | YAR || Toyota Motor Europe (based in Belgium) used for Toyota ProAce, Toyota ProAce City and Toyota ProAce Max made by PSA/Stellantis |- | YA2 || Atlas Copco Group |- | YA5 || Renders (truck trailers) |- | YA9/ || Lambrecht Constructie NV (truck trailers) |- | YA9/111 || OVA (truck trailer) |- | YA9/121 || Atcomex (truck trailer) |- | YA9/128 || EOS (bus) |- | YA9/139 || ATM Maaseik (truck trailer) |- | YA9/168 || Forthomme s.a. (truck trailer) |- | YA9/169 || Automobiles Gillet |- | YA9/180 || EOS (bus) |- | YA9/191 || Stokota (truck trailers) |- | YA9/195 || Denolf & Depla (minibus) |- | YBC || Toyota Supra (Fifth generation for Europe) |- | YBD || Addax Motors |- | YBW || Volkswagen Belgium |- | YB1 || Volvo Trucks Belgium (truck) |- | YB2 || Volvo Trucks Belgium (bus chassis) |- | YB3 || Volvo Trucks Belgium (incomplete vehicle) |- | YB4 || LAG Trailers N.V. (truck trailer) |- | YB6 || Jonckheere (VDL Belgium) |- | YCM || Mazda Motor Logistics Europe (based in Belgium) used for European-market Mazda 121 made by Ford in UK |- | YC1 || Honda Belgium NV (motorcycle) |- | YC3 || Eduard Trailers |- | YD3 || Chateau Caravans (Belgium) |- | YE1 || Van Hool (trailers) (Belgium) |- | YE2 || Van Hool (buses) (Belgium) |- | YE6 || STAS (truck trailer) |- | YE7 || Turbo's Hoet (truck trailer) |- | YF1 || Närko (truck trailer) (Finland) |- | YF3 || NTM (truck trailer) (Finland) |- | YF9/050 || JYKI (truck trailer) (Finland) |- | YGU || JJ-Trailer (trailer) (Finland) |- |YG6 |Majava Group Oy; Majava trailers (Finland) |- | YH1 || Solifer (caravans) |- | YH2 || BRP Finland (Lynx snowmobiles) |- | YH4 || Fisker Automotive (Fisker Karma) built by Valmet Automotive |- | YK1 || Saab-Valmet Finland |- | YK2, YK7 || Sisu Auto |- | YK9/003 || Kabus (bus) |- | YK9/008 || Lahden Autokori (-2013), SOE Busproduction Finland (2014-2024) (bus) |- | YK9/016 || Linkker (bus) |- | YSC || Cadillac BLS (made by Saab) |- | YSM || Polestar cars |- | YSP || Volta Trucks AB |- | YSR || Polestar SUV |- | YS2 || Scania commercial vehicles (Södertälje factory) |- | YS3 || Saab cars |- | YS4 || Scania buses and bus chassis until 2002 (Katrineholm factory) |- | YS5 || OmniNova (minibus) |- | YS7 || Solifer (recreational vehicles) |- | YS9/KV1 || Backaryd (minibus) |- | YTN || Saab made by NEVS |- | YT7 || Kabe (recreational vehicles) |- | YT9/007 || Koenigsegg |- | YT9/034 || Carvia |- | YU1 || Fogelsta, Brenderup Group (trailer) |- | YU7 || Husaberg (motorcycles) |- | YVV || WiMa 442 EV |- | YV1 || [[../Volvo/VIN Codes|Volvo]] cars |- | YV2 || [[../Volvo/VIN Codes|Volvo]] trucks |- | YV3 || [[../Volvo/VIN Codes|Volvo]] buses and bus chassis |- | YV4 || [[../Volvo/VIN Codes|Volvo]] SUV |- | YV5 || [[../Volvo/VIN Codes|Volvo Trucks]] incomplete vehicle |- | YYB || Tysse (trailer) (Norway) |- | YYC || Think Nordic (Norway) |- | YY9/017 || Skala Fabrikk (truck trailer) (Norway) |- | Y29/005 || Buddy Electric (Norway) |- | Y3D || MTM (truck trailer) (Belarus) |- | Y3F || Lida Buses Neman (Belarus) |- | Y3J || Belkommunmash (Belarus) |- | Y3K || Neman Bus (Belarus) |- | Y3M || MAZ (Belarus) |- | Y3W || VFV built by Unison (Belarus) |- | Y39/047 || Altant-M (minibus) (Belarus) |- | Y39/051 || Bus-Master (minibus) (Belarus) |- | Y39/052 || Aktriya (minibus) (Belarus) |- | Y39/072 || Klassikbus (minibus) (Belarus) |- | Y39/074 || Alterra (minibus) (Belarus) |- | Y39/135 || EuroDjet (minibus) (Belarus) |- | Y39/240 || Alizana (minibus) (Belarus) |- | Y39/241 || RSBUS (minibus) (Belarus) |- | Y39/323 || KF-AVTO (minibus) (Belarus) |- | Y4F || [[../Ford/VIN Codes|Ford]] Belarus |- | Y4K || Geely / BelGee (Belarus) |- | Y6B || Iveco (Ukraine) |- | Y6D || ZAZ / AvtoZAZ, Chevrolet Lanos made by ZAZ (Ukraine) |- | Y6E || LAZ (Ukraine) |- | Y6J || Bogdan group (Ukraine) |- | Y6L || Bogdan group including buses, Lada, & Hyundai made by Bogdan (Ukraine) |- | Y6U || Škoda Auto made by Eurocar (Ukraine) |- | Y6W || PGFM (trailer) (Ukraine) |- | Y6Y || LEV (trailer) (Ukraine) |- | Y69/B19 || Stryi Avto (bus) (Ukraine) |- | Y69/B98 || VESTT (truck trailer) (Ukraine) |- | Y69/C49 || TAD (truck trailer) (Ukraine) |- | Y69/D75 || Barrel Dash (truck trailer) (Ukraine) |- | Y7A || KrAZ trucks (Ukraine) |- | Y7B || Bogdan group (Ukraine) |- | Y7C || Great Wall Motors, Geely made by KrASZ (Ukraine) |- | Y7D || GAZ made by KrymAvtoGAZ (Ukraine) |- | Y7F || Boryspil Bus Factory (BAZ) (Ukraine) |- | Y7S || Korida-Tech (trailer) (Ukraine) |- | Y7W || Geely made by KrASZ (Ukraine) |- | Y7X || ChRZ - Ruta (minibus) (Ukraine) |- | Y79/A23 || OdAZ (truck trailer) (Ukraine) |- | Y79/B21 || Everlast (truck trailer) (Ukraine) |- | Y79/B65 || Avtoban (trailer) (Ukraine) |- | Y8A || LAZ (Ukraine) |- | Y8H || UNV Leader (trailer) (Ukraine) |- | Y8S || Alekseevka Ximmash (truck trailer) |- | Y8X || GAZ Gazelle made by KrASZ (Ukraine) |- | Y89/A98 || VARZ (trailer) (Ukraine) |- | Y89/B75 || Knott (trailer) (Ukraine) |- | Y89/C65 || Electron (Ukraine) |- | Y9A || PAVAM (trailer) (Ukraine) |- | Y9H || LAZ (Ukraine) |- | Y9M || AMS (trailer) (Ukraine) |- | Y9T || Dnipro (trailer) (Ukraine) |- | Y9W || Pragmatec (trailer) (Ukraine) |- | Y9Z || Lada, Renault made in Ukraine |- | Y99/B32 || Santey (trailer) (Ukraine) |- | Y99/E21 || Zmiev-Trans (truck trailer) (Ukraine) |- | Y99/C79 || Electron (bus) (Ukraine) |- | ZAA || Autobianchi |- | ZAA || Alfa Romeo Junior 2024- |- | ZAC || Jeep, Dodge Hornet |- | ZAH || Rolfo SpA (car transporter) |- | ZAJ || Trigano SpA; Roller Team recreational vehicles |- | ZAM || [[../Maserati/VIN Codes|Maserati]] |- | ZAP || Piaggio/Vespa/Gilera |- | ZAR || Alfa Romeo car |- | ZAS || Alfa Romeo Alfasud & Sprint through 1989 |- | ZAS || Alfa Romeo SUV 2018- |- | ZAX || Zorzi (truck trailer) |- | ZA4 || Omar (truck trailer) |- | ZA9/A12 || [[../Lamborghini/VIN Codes|Lamborghini]] through mid-2003 (including LM002) |- | ZA9/A17 || Carrozzeria Luigi Dalla Via (bus) |- | ZA9/A18 || De Simon (bus) |- | ZA9/A33 || Bucher Schörling Italia (sweeper) |- | ZA9/A47 || Silver Car (truck trailer) |- | ZA9/B09 || Mauri Bus System |- | ZA9/B34 || Mistrall Siloveicoli (truck trailer) |- | ZA9/B45 || Bolgan (truck trailer) |- | ZA9/B49 || OMSP Macola (truck trailer) |- | ZA9/B95 || Carrozzeria Autodromo Modena (bus) |- | ZA9/C38 || Dulevo (sweeper) |- | ZA9/D38 || Cizeta Automobili SRL |- | ZA9/D39 || [[../Bugatti/VIN Codes|Bugatti Automobili S.p.A]] |- | ZA9/D50 || Italdesign Giugiaro |- | ZA9/E15 || Tecnobus Industries S.r.l. |- | ZA9/E73 || Sitcar (bus) |- | ZA9/E88 || Cacciamali (bus) |- | ZA9/F16 || OMT (truck trailer) |- | ZA9/F21 || FGM (truck trailer) |- | ZA9/F48 || Rampini Carlo S.p.A. (bus) |- | ZA9/F76 || Pagani Automobili S.p.A. |- | ZA9/G97 || EPT Horus (bus) |- | ZA9/H02 || O.ME.P.S. (truck trailer) |- | ZA9/H44|| Green-technik by Green Produzione s.r.l. (machine trailer) |- | ZA9/J21 || VRV (truck trailer) |- | ZA9/J93 || Barbi (bus) |- | ZA9/K98 || Esagono Energia S.r.l. |- | ZA9/M09 || Italdesign Automobili Speciali |- | ZA9/M27 || Dallara Stradale |- | ZA9/M91 || Automobili Pininfarina |- | ZA9/180 || De Simon (bus) |- | ZA0 || Acerbi (truck trailer) |- | ZBA || Piacenza (truck trailer) |- | ZBB || Bertone |- | ZBD || InBus |- | ZBN || Benelli |- | ZBW || Rayton-Fissore Magnum |- | ZB3 || Cardi (truck trailer) |- | ZCB || E. Bartoletti SpA (truck trailer) |- | ZCF || Iveco / Irisbus (Italy) |- | ZCG || Cagiva SpA / MV Agusta |- | ZCG || Husqvarna Motorcycles Under MV Agusta ownership |- | ZCM || BredaMenarinibus / Menarinibus / IIA (Industria Italiana Autobus) |- | ZCN || Astra Veicoli Industriali S.p.A. |- | ZCV || Vibreti (truck trailer) |- | ZCZ || BredaBus |- | ZC1 || AnsaldoBreda S.p.A. |- | ZC2 || Chrysler TC by Maserati |- | ZDC || Honda Italia Industriale SpA |- | ZDF || [[../Ferrari/VIN Codes|Ferrari]] Dino |- | ZDJ || ACM Biagini |- | ZDM || Ducati Motor Holdings SpA |- | ZDT || De Tomaso Modena SpA |- | ZDY || Cacciamali |- | ZD0 || Yamaha Motor Italia SpA & Belgarda SpA |- | ZD3 || Beta Motor |- | ZD4 || Aprilia |- | ZD5 || Casalini |- | ZEB || Ellebi (trailer) |- | ZEH || Trigano SpA (former SEA Group); McLouis & Mobilvetta recreational vehicles |- | ZES || Bimota |- | ZEX || TM Racing (motorcycle) |- | ZE5 || Carmosino (truck trailer) |- | ZFA || Fiat |- | ZFB || Fiat MPV/SUV & Ram Promaster City |- | ZFC || Fiat truck (Fiat Ducato for Mexico, Ram 1200) |- | ZFE || KL Motorcycle |- | ZFF || [[../Ferrari/VIN Codes|Ferrari]] |- | ZFJ || Carrozzeria Pezzaioli (truck trailer) |- | ZFM || Fantic Motor |- | ZFR || Pininfarina |- | ZF4 || Qvale |- | ZGA || Iveco Bus |- | ZGP || Merker (truck trailer) |- | ZGU || Moto Guzzi |- | ZG2 || FAAM (commercial vehicle) |- | ZHU || Husqvarna Motorcycles Under Cagiva ownership |- | ZHW || [[../Lamborghini/VIN Codes|Lamborghini]] (Mid-2003 – ) |- | ZHZ || Menci SpA (truck trailer) |- | ZH5 || FB Mondial (motorcycle) |- | ZJM || Malaguti |- | ZJN || Innocenti |- | ZJT || Italjet |- | ZKC || Ducati Energia Free Duck (electric quadricycle) |- | ZKH || Husqvarna Motorcycles Srl Under BMW ownership |- | ZLA || Lancia |- | ZLF || Tazzari GL SpA |- | ZLM || Moto Morini srl |- | ZLV || Laverda |- | ZNN || Energica |- | ZN0 || SWM Motorcycles S.r.l. |- | ZN3 || Iveco Defence |- | ZN6 || Maserati SUV |- | ZPB || [[../Lamborghini/VIN Codes|Lamborghini]] SUV |- | ZPY || DR Automobiles |- | ZP6 || XEV |- | ZP8 || Regis Motors |- | ZRG || Tazzari GL Imola SpA |- | ZR1 || Microlino |- | ZSG || [[../Ferrari/VIN Codes|Ferrari]] SUV |- | ZX1 || TAM (Tovarna Avtomobilov Maribor) bus (Slovenia) |- | ZX9/KU0 || K-Bus / Kutsenits (bus) (Slovenia) |- | ZX9/DUR || TAM bus (Slovenia) |- | ZX9/TV0 || TAM (Tovarna Vozil Maribor) bus (Slovenia) |- | ZY1 || Adria (recreational vehicles) (Slovenia) |- | ZY9/002 || Gorica (truck trailer) (Slovenia) |- | ZZ1 || Tomos motorcycle (Slovenia) |- | Z29/555 || Vozila FLuid (truck trailer) (Slovenia) |- | Z3D || Tauriga UAB; Tauras trailers (Lithuania) |- | Z39/008 || Autogalantas (truck trailer) (Lithuania) |- | Z39/009 || Patikima Linija / Rimo (truck trailer) (Lithuania) |- | Z6F || Ford Sollers (Russia) |- | Z7C || Luidor (bus) (Russia) |- | Z7N || KAvZ (bus) (Russia) |- | Z7T || RoAZ (bus) (Russia) |- | Z7X || Isuzu Rus (Russia) |- | Z76 || SEMAZ (Kazakhstan) |- | Z8M || Marussia (Russia) |- | Z8N || Nissan Manufacturing Rus (Russia) |- | Z8T || PCMA Rus (Peugeot, Citroen, Mitsubishi) (Russia) |- | Z8U || [[w:SsangYong Korando#Third generation (C200; 2010)|Ssangyong Actyon]] made by Sollers (Russia) |- | Z8Y || Nasteviya (bus) (Russia) |- | Z9B || KuzbassAvto (Hyundai bus) (Russia) |- | Z9M || Mercedes-Benz Manufacturing Rus / Mercedes-Benz Trucks Vostok (Russia) |- | Z9N || Samotlor-NN (Iveco) (Russia) |- | Z94 || Hyundai Motor Manufacturing Rus (Hyundai, Kia) (2008-2023), Solaris Auto - AGR Automotive (2023-) (Russia) |- | Z07 || Volgabus (Russia) |- | 1A4 1A8 || Chrysler brand MPV/SUV 2006–2009 only |- | 1A9/007 || Advance Mixer Inc. |- | 1A9/111 || Amerisport Inc. (federalized late model DeTomaso Pantera) |- | 1A9/398 || Ameritech (federalized McLaren F1 & Bugatti EB110) |- | 1A9/569 || American Custom Golf Cars Inc. (AGC) |- | 1AC || American Motors Corporation MPV |- | 1AF || American LaFrance truck |- | 1AJ || Ajax Manufacturing (truck trailer) |- | 1AM || American Motors Corporation car & Renault Alliance 1983 only |- | 1BN || Beall Trailers (truck trailer) |- | 1B3 || Dodge car 1981–2011 |- | 1B4 || Dodge MPV/SUV 1981–2002 |- | 1B6 || Dodge incomplete vehicle 1981–2002 |- | 1B7 || Dodge truck 1981–2002 |- | 1B9/133 || Buell Motorcycle Company through mid-1995 |- | 1B9/274 || Brooks Brothers Trailers |- | 1B9/275 || Boydstun Metal Works (truck trailer) |- | 1B9/285 || Boss Hoss Cycles |- | 1B9/374 || Big Dog Custom Motorcycles through mid-2002 |- | 1B9/975 || Motus Motorcycles |- | 1BA || Blue Bird Corporation bus |- | 1BB || Blue Bird Wanderlodge MPV |- | 1BD || Blue Bird Corporation incomplete vehicle |- | 1BL || Balko, Inc. |- | 1C3 || Chrysler brand car 1981–2011 |- | 1C3 || Chrysler Group (all brands) car (including Lancia) 2012- |- | 1C4 || Chrysler brand MPV 1990–2005 |- | 1C4 || Chrysler Group (all brands) MPV 2012– |- | 1C6 || Chrysler Group (all brands) truck 2012– |- | 1C8 || Chrysler brand MPV 2001–2005 |- | 1C9/257 || CEI Equipment Company (truck trailer) |- | 1C9/291 || CX Automotive |- | 1C9/496 || Carlinville Truck Equipment (truck trailer) |- | 1C9/535 || Chance Coach (bus) |- | 1C9/737 || Corbin Motors, Inc. |- | 1C9/772 || Cozad (truck trailer) |- | 1C9/971 || Cool Amphibious Manufacturers International |- | 1CM || Checker Motors Corporation |- | 1CU || Cushman Haulster (Cushman division of Outboard Marine Corporation) |- | 1CY || Crane Carrier Company |- | 1CY || Battle Motors, Inc. |- | 1D3 || Dodge truck 2002–2009 |- | 1D4 || Dodge MPV/SUV 2003–2011 only |- | 1D7 || Dodge truck 2002–2011 |- | 1D8 || Dodge MPV/SUV 2003–2009 only |- | 1D9/008 || KME Fire Apparatus |- | 1D9/628 || Dymac Vehicle Group (low-speed vehicle) |- | 1D9/791 || Dennis Eagle, Inc. |- | 1DW || Stoughton Trailers (truck trailer) |- | 1E9/007 || E.D. Etnyre & Co. (truck trailer) |- | 1E9/190 || Electric Transit Inc. (trolleybus) |- | 1E9/363 || E-SUV LLC (E-Ride Industries) |- | 1E9/456 || Electric Motorsport (GPR-S electric motorcycle) |- | 1E9/526 || Epic TORQ |- | 1E9/581 || Vetter Razor |- | 1EU || Eagle Coach Corporation (bus) |- | 1FA || [[../Ford/VIN Codes|Ford]] car |- | 1FB || [[../Ford/VIN Codes|Ford]] "bus" (van with more than 3 rows of seats) |- | 1FC || [[../Ford/VIN Codes|Ford]] stripped chassis made by Ford |- | 1FD || [[../Ford/VIN Codes|Ford]] incomplete vehicle |- | 1FM || [[../Ford/VIN Codes|Ford]] MPV/SUV |- | 1FT || [[../Ford/VIN Codes|Ford]] truck |- | 1FU || Freightliner (truck) |- | 1FV || Freightliner (incomplete vehicle) |- | 1F1 || Ford SUV - Limousine (through 2009) |- | 1F6 || Ford stripped chassis made by Detroit Chassis LLC |- | 1F9/037 || Federal Motors Inc. |- | 1F9/140 || Ferrara Fire Apparatus (incomplete vehicle) |- | 1F9/458 || Faraday Future prototypes |- | 1F9/FT1 || FWD Corp. |- | 1F9/ST1 || Seagrave Fire Apparatus |- | 1F9/ST2 || Seagrave Fire Apparatus |- | 1G || [[../GM/VIN Codes|General Motors]] USA |- | 1G0 || GMC "bus" (van with more than 3 rows of seats) 1981–1986 |- | 1G0 || GMC Rapid Transit Series (RTS) bus 1981–1984 |- | 1G0 || Opel/Vauxhall car 2007–2017 |- | 1G1 || [[../GM/VIN Codes|Chevrolet]] car |- | 1G2 || [[../GM/VIN Codes|Pontiac]] car |- | 1G3 || [[../GM/VIN Codes|Oldsmobile]] car |- | 1G4 || [[../GM/VIN Codes|Buick]] car |- | 1G5 || GMC MPV/SUV 1981–1986 |- | 1G5 || Pontiac incomplete vehicle 1989-1990, 2003-2006 |- | 1G6 || [[../GM/VIN Codes|Cadillac]] car |- | 1G7 || Pontiac car only sold by GM Canada |- | 1G8 || Chevrolet MPV/SUV 1981–1986 |- | 1G8 || [[../GM/VIN Codes|Saturn]] car 1991–2010 |- | 1G9/492 || GreenPower Motor Company incomplete vehicle |- | 1G9/495 || Google & Waymo |- | 1GA || Chevrolet "bus" (van with more than 3 rows of seats) |- | 1GB || Chevrolet incomplete vehicle |- | 1GC || [[../GM/VIN Codes|Chevrolet]] truck |- | 1GD || GMC incomplete vehicle |- | 1GE || Cadillac incomplete vehicle |- | 1GF || Flxible bus |- | 1GG || Isuzu pickup trucks made by GM |- | 1GH || GMC Rapid Transit Series (RTS) bus 1985–1986 |- | 1GH || Oldsmobile MPV/SUV 1990–2004 |- | 1GH || Holden Acadia 2019–2020 |- | 1GJ || GMC "bus" (van with more than 3 rows of seats) 1987– |- | 1GK || GMC MPV/SUV 1987– |- | 1GM || [[../GM/VIN Codes|Pontiac]] MPV |- | 1GN || [[../GM/VIN Codes|Chevrolet]] MPV/SUV 1987- |- | 1GR || Great Dane Trailers (truck trailer) |- | 1GT || [[../GM/VIN Codes|GMC]] Truck |- | 1GW || Grumman Olson Kubvan (truck) |- | 1GY || [[../GM/VIN Codes|Cadillac]] SUV |- | 1HA || Chevrolet incomplete vehicles (Express cutaway) made by Navistar International/International Motors |- | 1HD || Harley-Davidson & LiveWire |- | 1HF || Honda motorcycle/ATV/UTV |- | 1HG || [[../Honda/VIN Codes|Honda]] car made by Honda of America Mfg. in Ohio |- | 1HP || International Trucks (complete vehicle - straight truck) |- | 1HS || International Trucks & Caterpillar Trucks (complete vehicle - truck tractor) |- | 1HT || International Trucks & Caterpillar Trucks & Chevrolet Silverado 4500HD, 5500HD, 6500HD (incomplete vehicle - straight truck) |- | 1HV || International or IC Bus (incomplete vehicle - bus) |- | 1H9/484 || Hughes Trailers (Based in Canyon, TX) (trailer) |- | 1H9/674 || Hines Specialty Vehicle Group |- | 1JC || Jeep SUV 1981–1988 (using AMC-style VIN structure) |- | 1JJ || Wabash (truck trailer) |- | 1JT || Jeep truck 1981–1988 (using AMC-style VIN structure) |- | 1JU || Marmon Motor Company (truck) |- | 1J4 || Jeep SUV 1989–2011 (using Chrysler-style VIN structure) |- | 1J7 || Jeep truck 1989–1992 (using Chrysler-style VIN structure) |- | 1J8 || Jeep SUV 2002–2011 (using Chrysler-style VIN structure) |- | 1KB || Holiday Rambler Corp. 1981-2010 (trailer) |- | 1K9/058 || Kovatech Mobile Equipment (fire engine) |- | 1LH || Landoll (truck trailer) |- | 1LJ || Lincoln incomplete vehicle |- | 1LN || [[../Ford/VIN Codes|Lincoln]] car |- | 1LV || Lectra Motors |- | 1L0 || Lufkin Trailers |- | 1L1 || Lincoln car – limousine |- | 1L9/155 || LA Exotics |- | 1L9/234 || Laforza |- | 1MB || Mercedes-Benz Truck Co. |- | 1ME || [[../Ford/VIN Codes|Mercury]] car |- | 1MR || Continental Mark VI & VII 1981–1985 & Continental sedan 1982–1985 |- | 1M0 || John Deere Gator |- | 1M1 || Mack Truck USA (truck) |- | 1M2 || Mack Truck USA (incomplete vehicle) |- | 1M3 || Mack Truck USA (glider) |- | 1M8 || Motor Coach Industries (bus) |- | 1M9/089 || Mauck Special Vehicles (bus) |- | 1M9/682 || Mosler Automotive |- | 1M9/816 || Proterra Through mid-2019 |- | 1N4 || Nissan car |- | 1N6 || Nissan truck |- | 1N9/019 || Neoplan USA |- | 1N9/084 || Eldorado National (California) |- | 1N9/140 || North American Bus Industries (bus) |- | 1N9/393 || Nikola Corporation (truck) |- | 1NK || Kenworth (incomplete vehicle) |- | 1NL || Gulf Stream Coach (recreational vehicles) |- | 1NN || Monon made by Evans Products Co. (truck trailer) |- | 1NP || Peterbilt (incomplete vehicle) |- | 1NX || Toyota car made by NUMMI |- | 1P3 || Plymouth car |- | 1P4 || Plymouth MPV/SUV |- | 1P7 || Plymouth Scamp |- | 1P9/038 || Hawk Vehicles, Inc. (Trihawk motorcycles) |- | 1P9/213 || Panoz |- | 1P9/255 || Pinson Truck Equipment Company (truck trailer) |- | 1PM || Polar Tank Trailer (truck trailer) |- | 1PT || Trailmobile Trailer Corporation (truck trailer) |- | 1PY || John Deere USA |- | 1RF || Roadmaster, Monaco Coach Corporation (incomplete vehicle) |- | 1RN || Reitnouer (truck trailer) |- | 1R9/956 || Reede Fabrication and Design (motorcycles) |- | 1ST || Airstream (recreational vehicles) |- | 1S1 || Strick Trailers (truck trailer) |- | 1S9/003 || Sutphen Corporation (fire engines - truck) |- | 1S9/009|| Superior Trailer Works (truck trailer) |- | 1S9/098 || Scania AB (Scania CN112 bus made in Orange, CT) |- | 1S9/842 || Saleen S7 |- | 1S9/260 || Stairs Welding RL (truck trailer) |- | 1S9/901 || Suckerpunch Sallys, LLC |- | 1S9/944 || SSC North America |- | 1TD || Timpte (truck trailer) |- | 1TK || Trail King (truck trailer) |- | 1TD || Transcraft Corporation (truck trailer) |- | 1T7 || Thomas Built Buses |- | 1T8 || Thomas Built Buses |- | 1T9/072 || The Trailer Co. (truck trailer) |- | 1T9/717 || Thunder Mountain Custom Cycles |- | 1T9/825 || TICO Manufacturing Company (truck) |- | 1T9/899 || Tomcar USA |- | 1T9/970 || Three Two Chopper |- | 1TC || Coachmen Recreational Vehicle Co., LLC |- | 1TU || Transportation Manufacturing Corporation |- | 1UJ || Jayco, Inc. |- | 1UT || AM General military trucks, Jeep DJ made by AM General |- | 1UY || Utility Trailer (truck trailer) |- | 1VH || Orion Bus Industries |- | 1VW || Volkswagen car |- | 1V1 || Volkswagen truck |- | 1V2 || Volkswagen SUV |- | 1V9/048 || Vector Aeromotive |- | 1V9/113 || Vantage Vehicle International Inc (low-speed vehicle) |- | 1V9/190 || Vanderhall Motor Works |- | 1WA || White Motor Company (Autocar brand truck) |- | 1WB || White Motor Company (Autocar brand incomplete vehicle) |- | 1WD || White Motor Company (Autocar brand glider) |- | 1WT || Winnebago Industries: Winnebago M.P.V. |- | 1WU || White Motor Company (White brand truck) |- | 1WV || Winnebago Industries: Winnebago M.P.V. - Class C Motorhome built on VW chassis & front cab [Winnebago Rialta ('95-'96)] |- | 1WW || Winnebago Industries: Winnebago M.P.V. - Class B Motorhome built on Renault chassis [Winnebago LeSharo, Centauri, Itasca Phasar] |- | 1WX || White Motor Company (White brand incomplete vehicle) |- | 1WY || White Motor Company (White brand glider) |- | 1W1 || Wilson Trailer Co. (truck trailer) |- | 1W5 || Western Recreational Vehicles (Alpenlite) |- | 1W8 || Witzco (truck trailer) |- | 1W9/010 || Weld-It Company (truck trailer) |- | 1W9/485 || Wheego Electric Cars |- | 1W9/488 || Certified Stainless Services Inc. DBA West-Mark (truck trailer) (2010 & later) |- | 1XA || Excalibur Automobile Corporation |- | 1XK || Kenworth (truck) |- | 1XM || Renault Alliance/GTA/Encore 1984–1987 |- | 1XP || Peterbilt (truck) |- | 1Y1 || Chevrolet/Geo car made by NUMMI |- | 1YJ || Rokon International, Inc. |- | 1YV || [[../Ford/VIN Codes|Mazda made by Mazda Motor Manufacturing USA/AutoAlliance International]] |- | 1ZV || [[../Ford/VIN Codes|Ford made by Mazda Motor Manufacturing USA/AutoAlliance International]] |- | 1ZW || [[../Ford/VIN Codes|Mercury made by AutoAlliance International]] |- | 1Z3 1Z7 || Mitsubishi Raider |- | 1Z9/170 || [[w:Orange County Choppers|Orange County Choppers]] |- | 10B || Brenner Tank (truck trailer) |- | 10R || E-Z-GO |- | 10T || Oshkosh Corporation |- | 11H || Hendrickson Mobile Equipment, Inc. (fire engines - incomplete vehicle) |- | 11V || Kalmar Solutions (Truck - Terminal Tractor) |- | 12A || Avanti |- | 137 || AM General Hummer & Hummer H1 |- | 13N || Fontaine (truck trailer) |- | 15G || Gillig bus |- | 16C || Clenet Coachworks |- | 16W || Certified Stainless Services Inc. DBA West-Mark (truck trailer) (prior to 2010) |- | 16X || Vixen 21 motorhome |- | 17N || John Deere incomplete vehicle (RV chassis) |- | 18X || Western Recreational Vehicles |- | 19U || Acura car made by Honda of America Mfg. in Ohio |- | 19V || Acura car made by Honda Manufacturing of Indiana |- | 19X || Honda car made by Honda Manufacturing of Indiana |- | 2A3 || Imperial |- | 2A4 2A8 || Chrysler brand MPV/SUV 2006–2011 only |- | 2AY 2AZ || Hino |- | 2BC || Jeep Wrangler (YJ) 1987–1988 (using AMC-style VIN structure) |- | 2BP || Ski-Doo |- | 2BV || Can-Am & Bombardier ATV |- | 2BW || Can-Am Commander E LSV |- | 2BX || Can-Am Spyder & Canyon 3-wheelers |- | 2BZ || Can-Am Freedom Trailer for Can-Am Spyder & Canyon |- | 2B1 || Orion Bus Industries |- | 2B3 || Dodge car 1981–2011 |- | 2B4 || Dodge MPV 1981–2002 |- | 2B5 || Dodge "bus" (van with more than 3 rows of seats) 1981–2002 |- | 2B6 || Dodge incomplete vehicle 1981–2002 |- | 2B7 || Dodge truck 1981–2002 |- | 2B9/001 || BWS Manufacturing (truck trailer) |- | 2C1 || Geo/Chevrolet car made by CAMI Automotive |- | 2C3 || Chrysler brand car 1981–2011 |- | 2C3 || Chrysler Group (all brands) car (including Lancia) 2012- |- | 2C4 || Chrysler brand MPV/SUV 2000–2005 |- | 2C4 || Chrysler Group (all brands) MPV (including Lancia Voyager & Volkswagen Routan) 2012- |- | 2C7 || Pontiac car made by CAMI Automotive only sold by GM Canada |- | 2C8 || Chrysler brand MPV/SUV 2001–2005 |- | 2C9/145 || Campagna Motors |- | 2C9/197 || Canadian Electric Vehicles |- | 2CC || American Motors Corporation MPV |- | 2CG || Asüna/Pontiac SUV made by CAMI Automotive only sold by GM Canada |- | 2CK || GMC Tracker SUV made by CAMI Automotive only sold by GM Canada 1990–1991 only |- | 2CK || Pontiac Torrent SUV made by CAMI Automotive 2006–2009 only |- | 2CM || American Motors Corporation car |- | 2CN || Geo/Chevrolet SUV made by CAMI Automotive 1990–2011 only |- | 2CT || GMC Terrain SUV made by CAMI Automotive 2010–2011 only |- | 2D4 || Dodge MPV 2003–2011 only |- | 2D6 || Dodge incomplete vehicle 2003 |- | 2D7 || Dodge truck 2003 |- | 2D8 || Dodge MPV 2003–2011 only |- | 2DG || Ontario Drive & Gear |- | 2DM || Di-Mond Trailers (truck trailer) |- | 2DN || Dynasty Electric Car Corporation |- | 2EZ || Electra Meccanica Vehicles Corp. (Solo) |- | 2E3 || Eagle car 1989–1997 (using Chrysler-style VIN structure) |- | 2E4 || 2011 Lancia MPV (Voyager) |- | 2E9/080 || Electra Meccanica Vehicles Corp. (Solo) |- | 2FA || [[../Ford/VIN Codes|Ford]] car |- | 2FH || Zenn Motor Co., Ltd. (low-speed vehicle) |- | 2FM || [[../Ford/VIN Codes|Ford]] MPV/SUV |- | 2FT || [[../Ford/VIN Codes|Ford]] truck |- | 2FU || Freightliner (truck) |- | 2FV || Freightliner (incomplete vehicle) |- | 2FW || Sterling Trucks (truck-complete vehicle) |- | 2FY || New Flyer |- | 2FZ || Sterling Trucks (incomplete vehicle) |- | 2Gx || [[../GM/VIN Codes|General Motors]] Canada |- | 2G0 || GMC "bus" (van with more than 3 rows of seats) 1981–1986 |- | 2G1 || [[../GM/VIN Codes|Chevrolet]] car |- | 2G2 || [[../GM/VIN Codes|Pontiac]] car |- | 2G3 || [[../GM/VIN Codes|Oldsmobile]] car |- | 2G4 || [[../GM/VIN Codes|Buick]] car |- | 2G5 || GMC MPV 1981–1986 |- | 2G5 || Chevrolet BrightDrop / BrightDrop Zevo truck 2023-2026 |- | 2G6 || [[../GM/VIN Codes|Cadillac]] car |- | 2G7 || Pontiac car only sold by GM Canada |- | 2G8 || Chevrolet MPV 1981–1986 |- | 2GA || Chevrolet "bus" (van with more than 3 rows of seats) |- | 2GB || Chevrolet incomplete vehicle |- | 2GC || Chevrolet truck |- | 2GD || GMC incomplete vehicle |- | 2GE || Cadillac incomplete vehicle |- | 2GH || GMC GM New Look bus & GM Classic series bus |- | 2GJ || GMC "bus" (van with more than 3 rows of seats) 1987– |- | 2GK || GMC MPV/SUV 1987– |- | 2GN || Chevrolet MPV/SUV 1987- |- | 2GT || GMC truck |- | 2HG || [[../Honda/VIN Codes|Honda]] car made by Honda of Canada Manufacturing |- | 2HH || Acura car made by Honda of Canada Manufacturing |- | 2HJ || [[../Honda/VIN Codes|Honda]] truck made by Honda of Canada Manufacturing |- | 2HK || [[../Honda/VIN Codes|Honda]] MPV/SUV made by Honda of Canada Manufacturing |- | 2HM || Hyundai Canada |- | 2HN || Acura SUV made by Honda of Canada Manufacturing |- | 2HP || International Trucks (complete vehicle - straight truck) |- | 2HS || International Trucks (complete vehicle - truck tractor) |- | 2HT || International Trucks (incomplete vehicle - straight truck) |- | 2HV || International or IC Bus (incomplete vehicle - bus) |- | 2J4 || Jeep Wrangler (YJ) 1989–1992 (using Chrysler-style VIN structure) |- | 2L1 || Lincoln incomplete vehicle – limo |- | 2LD || Triple E Canada Ltd. |- | 2LJ || Lincoln incomplete vehicle – hearse |- | 2LM || Lincoln SUV |- | 2LN || Lincoln car |- | 2M1 || Mack Trucks Canada (truck) |- | 2M2 || Mack Trucks Canada (incomplete vehicle) |- | 2M3 || Mack Truck Canada (glider) |- | 2ME || [[../Ford/VIN Codes|Mercury]] car |- | 2MG || Motor Coach Industries (Produced from Sept. 1, 2008 on) |- | 2MH || [[../Ford/VIN Codes|Mercury]] incomplete vehicle |- | 2MR || [[../Ford/VIN Codes|Mercury]] MPV |- | 2M9/044 || Westward Industries |- | 2M9/058 || Motor Coach Industries |- | 2NK || Kenworth incomplete vehicle |- | 2NP || Peterbilt incomplete vehicle |- | 2NV || Nova Bus |- | 2P3 || Plymouth car |- | 2P4 || Plymouth MPV 1981–2000 |- | 2P5 || Plymouth "bus" (van with more than 3 rows of seats) 1981–1983 |- | 2P9/001 || Prevost 1981–1995 |- | 2PC || Prevost 1996- |- | 2S2 || Suzuki car made by CAMI Automotive |- | 2S3 || Suzuki SUV made by CAMI Automotive |- | 2TU || Tri-Star Industries Limited |- | 2T1 || [[../Toyota/VIN Codes|Toyota]] car made by TMMC |- | 2T2 || Lexus SUV made by TMMC |- | 2T3 || [[../Toyota/VIN Codes|Toyota]] SUV made by TMMC |- | 2T9/206 || Triple E Canada Ltd. |- | 2V4 || Volkswagen Routan made by Chrysler Canada |- | 2V8 || Volkswagen Routan made by Chrysler Canada |- | 2W9/044 || Westward Industries |- | 2WK || Western Star (truck) |- | 2WL || Western Star (incomplete vehicle) |- | 2WM || Western Star (glider) |- | 2XK || Kenworth (truck) |- | 2XM || Eagle Premier 1988 only (using AMC-style VIN structure) |- | 2XP || Peterbilt (truck) |- | 3A4 3A8 || Chrysler brand MPV 2006–2010 only |- | 3A9/050 || MARGO (truck trailer) |- | 3AK || Freightliner Trucks (truck) |- | 3AL || Freightliner Trucks (incomplete vehicle) |- | 3AW || Fruehauf de Mexico (truck trailer) |- | 3AX || Scania Mexico |- | 3BE || Scania Mexico (buses) |- | 3BH || Western Star 3700 (truck) made by DINA S.A. |- | 3BH || Western Star (truck) |- | 3BJ || Western Star 3700 (incomplete vehicle) made by DINA S.A. |- | 3BJ || Western Star (incomplete vehicle) |- | 3BK || Kenworth (incomplete vehicle) |- | 3BM || Motor Coach Industries bus made by DINA S.A. |- | 3BP || Peterbilt (incomplete vehicle) |- | 3B3 || Dodge car 1981–2011 |- | 3B4 || Dodge SUV 1986–1993 |- | 3B6 || Dodge incomplete vehicle 1981–2002 |- | 3B7 || Dodge truck 1981–2002 |- | 3C3 || Chrysler brand car 1981–2011 |- | 3C3 || Chrysler Group (all brands) car (including Fiat) 2012- |- | 3C4 || Chrysler brand MPV 2001–2005 |- | 3C4 || Chrysler Group (all brands) MPV (including Fiat) 2012- |- | 3C6 || Chrysler Group (all brands) truck 2012– |- | 3C7 || Chrysler Group (all brands) incomplete vehicle 2012– |- | 3C8 || Chrysler brand MPV 2001–2005 |- | 3CA || Chrysler brand MPV 2001 (PT Cruiser w/serial# 232057-265662) |- | 3CE || Volvo Buses de Mexico |- | 3CG || KTMMEX S.A. de C.V. |- | 3CZ || Honda SUV made by Honda de Mexico |- | 3D2 || Dodge incomplete vehicle 2007–2009 |- | 3D3 || Dodge truck 2006–2009 |- | 3D4 || Dodge SUV 2009–2011 |- | 3D6 || Dodge incomplete vehicle 2003–2011 |- | 3D7 || Dodge truck 2002–2011 |- | 3EL || ATRO (truck trailer) |- | 3E4 || 2011 Fiat SUV (Freemont) |- | 3FA || [[../Ford/VIN Codes|Ford]] car |- | 3FC || Ford stripped chassis made by Ford & IMMSA |- | 3FE || [[../Ford/VIN Codes|Ford]] Mexico |- | 3FM || [[../Ford/VIN Codes|Ford]] MPV/SUV |- | 3FN || Ford F-650/F-750 made by Blue Diamond Truck Co. (truck) |- | 3FR || Ford F-650/F-750 & Ford LCF made by Blue Diamond Truck Co. (incomplete vehicle) |- | 3FT || [[../Ford/VIN Codes|Ford]] truck |- | 3F6 || Sterling Bullet |- | 3G || [[../GM/VIN Codes|General Motors]] Mexico |- | 3G0 || Saab 9-4X 2011 |- | 3G0 || Holden Equinox 2018–2020 |- | 3G1 || [[../GM/VIN Codes|Chevrolet]] car |- | 3G2 || [[../GM/VIN Codes|Pontiac]] car |- | 3G4 || [[../GM/VIN Codes|Buick]] car |- | 3G5 || [[../GM/VIN Codes|Buick]] SUV |- | 3G7 || [[../GM/VIN Codes|Pontiac]] SUV |- | 3GA || JAC models assembled by Giant Motors in Mexico |- | 3GC || Chevrolet truck |- | 3GK || GMC SUV |- | 3GM || Holden Suburban |- | 3GN || Chevrolet SUV |- | 3GP || Honda Prologue EV made by GM |- | 3GS || Saturn SUV |- | 3GT || GMC truck |- | 3GY || Cadillac SUV |- | 3H1 || Honda motorcycle/UTV |- | 3H3 || Hyundai de Mexico, S.A. de C.V. for Hyundai Translead (truck trailers) |- | 3HA || International Trucks (incomplete vehicle - straight truck) made by Blue Diamond Truck Co. 2011-2015 |- | 3HA || International Trucks (incomplete vehicle - straight truck) made by Navistar Mexico/International Motors Mexico 2016- |- | 3HC || International Trucks (complete vehicle - truck tractor) made by Blue Diamond Truck Co. 2011-2015 |- | 3HC || International Trucks (complete vehicle - truck tractor) made by Navistar Mexico/International Motors Mexico 2016- |- | 3HD || Acura SUV made by Honda de Mexico |- | 3HG || [[../Honda/VIN Codes|Honda]] car made by Honda de Mexico |- | 3HR || International Trucks (complete vehicle - truck) |- | 3HS || International Trucks & Caterpillar Trucks (complete vehicle - truck tractor) |- | 3HT || International Trucks & Caterpillar Trucks (incomplete vehicle - straight truck) |- | 3HV || International (incomplete vehicle - bus) |- | 3JB || BRP Mexico (Can-Am ATV/UTV & Can-Am Ryker 3-wheeler) |- | 3JC || BRP Mexico (Can-Am Origin & Pulse electric 2-wheel motorcycles) |- | 3KM || Kia/Hyundai MPV/SUV made by KMMX |- | 3KP || Kia/Hyundai car made by KMMX |- | 3LN || Lincoln car |- | 3MA || Mercury car (1988-1995) |- | 3MD || Mazda de Mexico car (Mazda 2) |- | 3ME || Mercury car (1996-2011) |- | 3MF || BMW M car |- | 3MG || Isuzu Motors de Mexico |- | 3MJ || Mazda CX-3 (Mazda de Mexico) |- | 3MV || Mazda de Mexico SUV (Mazda CX-30) |- | 3MW || BMW car |- | 3MY || Toyota car made by Mazda de Mexico Vehicle Operation |- | 3MZ || Mazda de Mexico car (Mazda 3) |- | 3N1 || Nissan Mexico car |- | 3N6 || Nissan Mexico truck & Chevrolet City Express |- | 3N8 || Nissan Mexico MPV |- | 3NS || Polaris Industries ATV |- | 3NE || Polaris Industries UTV |- | 3P3 || Plymouth car |- | 3PC || Infiniti SUV made by COMPAS |- | 3TM || Toyota truck made by TMMBC |- | 3TY || Toyota truck made by TMMGT |- | 3VV || Volkswagen Mexico SUV |- | 3VW || Volkswagen Mexico car |- | 3WK || Kenworth truck |- | 3WP || Peterbilt truck |- | 3X1 || Mack Truck Mexico (truck) |- | 3X2 || Mack Truck Mexico (incomplete vehicle) |- | 4A3 || Mitsubishi Motors car |- | 4A4 || Mitsubishi Motors SUV |- | 4B3 || Dodge car made by Diamond-Star Motors factory |- | 4B9/038 || BYD Coach & Bus LLC |- | 4C3 || Chrysler car made by Diamond-Star Motors factory |- | 4C6 || Reinke Manufacturing Company (truck trailer) |- | 4C9/272 || Christini Technologies (motorcycle) |- | 4C9/561 || Czinger |- | 4C9/626 || Canoo Inc. |- | 4CD || Oshkosh Chassis Division incomplete vehicle (RV chassis) |- | 4DR || IC Bus (complete vehicle - bus) |- | 4E3 || Eagle car made by Diamond-Star Motors factory |- | 4EN || E-ONE, Inc. (fire engines - truck) |- | 4EZ || KZ Recreational Vehicles (trailer) |- | 4F2 || Mazda SUV made by Ford |- | 4F4 || Mazda truck made by Ford |- | 4G1 || Chevrolet Cavalier convertible made by Genasys L.C. – a GM/ASC joint venture |- | 4G2 || Pontiac Sunfire convertible made by Genasys L.C. – a GM/ASC joint venture |- | 4G3 || Toyota Cavalier made by GM |- | 4G5 || General Motors EV1 |- | 4GD || WhiteGMC Brigadier 1988–1989 made by GM |- | 4GD || Opel/Vauxhall Sintra |- | 4GL || Buick incomplete vehicle |- | 4GT || Isuzu incomplete vehicle built by GM |- | 4JG || [[../Mercedes-Benz/VIN Codes|Mercedes-Benz]] SUV |- | 4J8 || LBT, Inc. (truck trailer) |- | 4KA || IC Bus (complete vehicle - truck) |- | 4KB || Chevrolet W-Series (gas engine only) made by GM (Incomplete Vehicle - medium duty) |- | 4KD || GMC W-Series (gas engine only) made by GM (Incomplete Vehicle - medium duty) |- | 4KL || Isuzu N-Series (gas engine only) made by GM (Incomplete Vehicle - medium duty) |- | 4LM || Capacity Trucks (truck) [terminal tractors] |- | 4M2 || [[../Ford/VIN Codes|Mercury]] MPV/SUV |- | 4M9/220 || Meyers Manx, LLC (Manx 2.0 EV) [Passenger Car - Replica] |- | 4ML || Oshkosh Trailer Division |- | 4MZ || Buell Motorcycle Company (Mid-1995 – ) |- | 4N2 || Nissan Quest made by Ford |- | 4NU || Isuzu Ascender made by GM |- | 4PR || Hughes Trailers of Jackson (trailer) |- | 4P1 || Pierce Manufacturing Inc. USA |- | 4P3 || Plymouth car made by Diamond-Star Motors factory 1990–1994 |- | 4P3 || Mitsubishi Motors SUV made by Mitsubishi Motor Manufacturing of America 2013–2015 for export only |- | 4RK || Nova Bus & Prevost made by Nova Bus (US) Inc. |- | 4S1 || Isuzu truck made by Subaru Isuzu Automotive |- | 4S2 || Isuzu SUV made by Subaru Isuzu Automotive & 2nd gen. Holden Frontera made by SIA |- | 4S3 || [[../Subaru/VIN Codes|Subaru]] car |- | 4S4 || [[../Subaru/VIN Codes|Subaru]] SUV/MPV |- | 4S6 || Honda SUV made by Subaru Isuzu Automotive |- | 4S7 || Spartan Motors incomplete vehicle |- | 4S9/197 || Smith Electric Vehicles |- | 4S9/345 || Satellite Suites (trailer) |- | 4S9/419 || Spartan Motors truck |- | 4S9/454 || Scuderia Cameron Glickenhaus passenger car |- | 4S9/520 || Signature Autosport, LLC (Osprey Custom Cars) |- | 4S9/542 || Scuderia Cameron Glickenhaus SCG Boot (M.P.V.) |- | 4S9/544 || Scuderia Cameron Glickenhaus passenger car |- | 4S9/559 || Spartan Fire, LLC truck (formerly Spartan ER) |- | 4S9/560 || Spartan Fire, LLC incomplete vehicle (formerly Spartan ER) |- | 4S9/569 || SC Autosports, LLC (Kandi) |- | 4TA || [[../Toyota/VIN Codes|Toyota]] truck made by NUMMI |- | 4T1 || [[../Toyota/VIN Codes|Toyota]] car made by Toyota Motor Manufacturing Kentucky |- | 4T3 || [[../Toyota/VIN Codes|Toyota]] MPV/SUV made by Toyota Motor Manufacturing Kentucky |- | 4T4 || [[../Toyota/VIN Codes|Toyota]] car made by Subaru of Indiana Automotive |- | 4T9/208 || Xos, Inc. |- | 4T9/228 || Lumen Motors |- | 4UF || Arctic Cat Inc. |- | 4US || BMW car |- | 4UZ || Freightliner Custom Chassis Corporation & <br /> gas-powered Mitsubishi Fuso trucks assembled by Freightliner Custom Chassis & <br /> Thomas Built Buses FS-65 & Saf-T-Liner C2 |- | 4V0 || Crossroads RV (recreational vehicles) |- | 4V1 || WhiteGMC (truck) 1988-1995 |- | 4V2 || WhiteGMC (incomplete vehicle) 1988-1995 |- | 4V3 || WhiteGMC (glider) 1988-1995 |- | 4V1 || Volvo Trucks North America [low cab-over engine] (truck) 2000-2003 |- | 4V2 || Volvo Trucks North America [low cab-over engine] (incomplete vehicle) 2000-2003 |- | 4V4 || Volvo Trucks North America [conventional] (truck) 1996+ |- | 4V5 || Volvo Trucks North America [conventional] (incomplete vehicle) 1996+ |- | 4V6 || Volvo Trucks North America (glider) |- | 4VA || Volvo Trucks North America [conventional- Class 7 w/air brakes] (truck) 1997-1999 |- | 4VB || Volvo Trucks North America [conventional- Class 7 w/air brakes] (incomplete vehicle) 1997-1999 |- | 4VC || Volvo Trucks North America [conventional- Class 7 w/hydraulic brakes] (incomplete vehicle) |- | 4VD || Volvo Trucks North America [low cab-over engine- Class 7 w/air brakes] (truck) |- | 4VE || Volvo Trucks North America [low cab-over engine- Class 7 w/air brakes] (incomplete vehicle) |- | 4VG || Volvo Trucks North America [conventional- Class 8 w/air brakes] (truck) 1997-1999 |- | 4VH || Volvo Trucks North America [conventional- Class 8 w/air brakes] (incomplete vehicle) 1997-1999 |- | 4VJ || Volvo Trucks North America [high cab-over engine- Class 8 w/air brakes] (truck) |- | 4VK || Volvo Trucks North America [high cab-over engine- Class 8 w/air brakes] (incomplete vehicle) |- | 4VL || Volvo Trucks North America [low cab-over engine- Class 8 w/air brakes] (truck) |- | 4VM || Volvo Trucks North America [low cab-over engine- Class 8 w/air brakes] (incomplete vehicle) |- | 4VZ || Spartan Motors/The Shyft Group (incomplete vehicle – bare chassis only) |- | 4WW || Wilson Trailer Sales |- | 4W1 || '24+ Chevrolet Suburban HD made by GM Defense for US govt. in Concord, NC |- | 4W5 || Acura ZDX EV made by GM |- | 4XA || Polaris Inc. |- | 4X4 || Forest River |- | 4YD || KeyStone RV Company (recreational vehicle) |- | 4YM || Carry-On Trailer, Inc. |- | 4YM || Anderson Manufacturing (trailer) |- | 4Z3 || American LaFrance truck |- | 43C || Consulier |- | 44K || HME Inc. (fire engines - incomplete vehicle) (HME=Hendrickson Mobile Equipment) |- | 46G || Gillig incomplete vehicle |- | 46J || Federal Motors Inc |- | 478 || Honda ATV |- | 480 || Sterling Trucks (truck) |- | 49H || Sterling Trucks (incomplete vehicle) |- | 5AS || Global Electric Motorcars (GEM) 1999-2011 |- | 5AX || Armor Chassis (truck trailer) |- | 5A4 || Load Rite Trailers Inc. |- | 5BP || Solectria |- | 5BZ || Nissan "bus" (van with more than 3 rows of seats) |- | 5B4 || Workhorse Custom Chassis, LLC incomplete vehicle (RV chassis) |- | 5CD || Indian Motorcycle Company of America (Gilroy, CA) |- | 5CJ || Western Star Trucks (incomplete vehicle) |- | 5CK || Western Star Trucks (truck) |- | 5CX || Shelby Series 1 |- | 5DF || Thomas Dennis Company LLC |- | 5DG || Terex Advance Mixer, Inc. (Formerly Advance Mixer, Inc.) (truck) |- | 5EH || Excelsior-Henderson Motorcycle |- | 5EO || Cottrell (truck trailer) |- | 5FC || Columbia Vehicle Group (Columbia, Tomberlin) (low-speed vehicles) |- | 5FN || Honda MPV/SUV made by Honda Manufacturing of Alabama |- | 5FP || Honda truck made by Honda Manufacturing of Alabama |- | 5FR || Acura SUV made by Honda Manufacturing of Alabama |- | 5FT || Feeling Trailers |- | 5FY || New Flyer |- | 5GA || Buick MPV/SUV |- | 5GD || Daewoo G2X |- | 5GN || Hummer H3T |- | 5GR || Hummer H2 |- | 5GT || Hummer H3 |- | 5GZ || Saturn MPV/SUV |- | 5G8 || Holden Volt |- | 5HD || Harley-Davidson for export markets |- | 5HT || Heil Trailer (truck trailer) |- | 5J1 || Big Dog Motorcycles (Mid-2002 – ) |- | 5J5 || Club Car (low-speed vehicle) |- | 5J6 || Honda SUV made by Honda of America Mfg. in Ohio |- | 5J8 || Acura SUV made by Honda of America Mfg. in Ohio |- | 5KB || Honda car made by Honda Manufacturing of Alabama |- | 5KJ || Western Star Trucks (truck) |- | 5KK || Western Star Trucks (incomplete vehicle) |- | 5KM || Vento Motorcycles |- | 5KT || Karavan Trailers |- | 5L1 || [[../Ford/VIN Codes|Lincoln]] SUV - Limousine (2004–2009) |- | 5L5 || American IronHorse Motorcycle |- | 5LD || Ford & Lincoln incomplete vehicle – limousine (2010–2014) |- | 5LM || [[../Ford/VIN Codes|Lincoln]] SUV |- | 5LT || [[../Ford/VIN Codes|Lincoln]] truck |- | 5MZ || Buell Motorcycle Company for export markets |- | 5N1 || Nissan & Infiniti SUV |- | 5N3 || Infiniti SUV |- | 5NH || Forest River |- | 5NM || Hyundai SUV made by HMMA |- | 5NP || Hyundai car made by HMMA |- | 5NT || Hyundai truck made by HMMA |- | 5PV || Hino incomplete vehicle made by Hino Motors Manufacturing USA |- | 5RJ || International MXT made by Android Industries - Springfield LLC |- | 5RX || Heartland Recreational Vehicles |- | 5S3 || Saab 9-7X |- | 5SA || Suzuki Manufacturing of America Corp. (ATV) |- | 5SX || American LaFrance incomplete vehicle (Condor) |- | 5TB || [[../Toyota/VIN Codes|Toyota]] truck made by TMMI |- | 5TD || Toyota MPV/SUV & Lexus TX made by TMMI |- | 5TE || Toyota truck made by NUMMI |- | 5TF || Toyota truck made by TMMTX |- | 5TU || Construction Trailer Specialist (truck trailer) |- | 5UM || BMW M car |- | 5UX || BMW SUV |- | 5VC || Autocar incomplete vehicle |- | 5VF || American Electric Vehicle Company (low-speed vehicle) |- | 5VK || Great Northern Trailer Works (truck trailer) |- | 5VP || Victory Motorcycles |- | 5V4 || Autocar truck |- | 5V8 || Vanguard National (truck trailer) |- | 5WE || IC Bus (incomplete vehicle - bus or truck) |- | 5XX || Kia car made by KMMG |- | 5XY || Kia/Hyundai SUV made by KMMG |- | 5YA || Indian Motorcycle Company (Kings Mountain, NC) |- | 5YF || Toyota car made by TMMMS |- | 5YJ || Tesla, Inc. passenger car (only used for US-built Model S and Model 3 starting from Nov, 1st 2021) |- | 5YM || BMW M SUV |- | 5YN || Cruise Car, Inc. |- | 5Y2 || Pontiac Vibe made by NUMMI |- | 5Y4 || Yamaha Motor Motor Mfg. Corp. of America (ATV, UTV) |- | 5ZT || Forest River (recreational vehicles) |- | 5ZU || Greenkraft (truck) |- | 5Z6 || Suzuki Equator (truck) made by Nissan |- | 50E || Lucid Motors passenger car |- | 50G || Karma Automotive |- | 50H || Norstar Company (truck trailers, truck beds) |- | 516 || Autocar truck |- | 51R || Brammo Motorcycles |- | 51T || Monaco RV LLC/Navistar RV LLC: Monaco (trailer) |- | 51U || Monaco RV LLC/Navistar RV LLC: Holiday Rambler 2010- (trailer) |- | 51V || Monaco RV LLC/Navistar RV LLC: R-Vision (trailer) |- | 51X || Monaco RV LLC/Navistar RV LLC: McKenzie (trailer) |- | 51Z || Monaco RV LLC/Navistar RV LLC: Monaco RV [Roadmaster Chassis] (incomplete vehicle) |- | 522 || GreenGo Tek (low-speed vehicle) |- | 523 || VPG (The Vehicle Production Group) |- | 52C || GEM subsidiary of Polaris Inc. |- | 537 || Azure Dynamics Transit Connect Electric |- | 538 || Zero Motorcycles |- | 53G || Coda Automotive |- | 53T || Think North America in Elkhart, IN |- | 546 || EBR Motorcycles |- | 54C || Winnebago Industries travel trailer |- | 54D || Isuzu & Chevrolet commercial trucks built by Spartan Motors/The Shyft Group |- | 54F || Rosenbauer Motors (incomplete vehicle) |- | 55S || Mercedes-Benz car |- | 56E || Armor Lite Trailer Mfg. (truck trailers) |- | 56K || Indian Motorcycle International, LLC (Polaris subsidiary) |- | 573 || Grand Design RV (truck trailer) |- | 57C || Maurer Manufacturing (truck trailer) |- | 57R || Oreion Motors |- | 57S || Lightning Motors Corp. (electric motorcycles) |- | 57W || Mobility Ventures |- | 57X || Polaris Slingshot |- | 58A || Lexus car made by TMMK (Lexus ES) |- | 6AB || MAN Australia |- | 6AM || Jayco Corp. (RVs) |- | 6F1 || Ford |- | 6F2 || Iveco Trucks Australia Ltd. |- | 6F4 || Nissan Motor Company Australia |- | 6F5 || Kenworth Australia |- | 6FM || Mack Trucks Australia |- | 6FP || [[../Ford/VIN Codes|Ford]] Australia |- | 6G1 || [[../GM/VIN Codes|General Motors]]-Holden (post Nov 2002), Chevrolet 2000-2013, Vauxhall Monaro & VXR8 ('08-'17), Daewoo Statesman & Veritas |- | 6G2 || [[../GM/VIN Codes|Pontiac]] made in Australia ('04-'06 GTO & '08-'09 G8) |- | 6G3 || [[../GM/VIN Codes|General Motors]] Chevrolet Caprice PPV & SS performance sedan 2014-2017, Middle East mkt. Chevrolet Caprice '14-'17 |- | 6H8 || [[../GM/VIN Codes|General Motors]]-Holden (pre Nov 2002) |- | 6KT || BCI Bus |- | 6MM || Mitsubishi Motors Australia |- | 6MP || Mercury Capri 1991-1994 |- | 6T1 || [[../Toyota/VIN Codes|Toyota]] Motor Corporation Australia |- | 6T9 || Privately Imported car (VIN issued by Victoria) or Trailer in Australia |- | 6U9 || Privately Imported car in Australia |- | 6Y9/043 || Intertruck Distributors (NZ) Ltd. - International Trucks New Zealand |- | 6ZZ || Privately Imported car in Australia |- | 7AB || MAN New Zealand |- | 7AT || VIN assigned by the New Zealand Transport Authority Waka Kotahi from 29 November 2009 |- | 7A1 || Mitsubishi New Zealand |- | 7A3 || Honda New Zealand |- | 7A4 || Toyota New Zealand |- | 7A5 || Ford New Zealand |- | 7A7 || Nissan New Zealand |- | 7A8 || VIN assigned by the New Zealand Transport Authority Waka Kotahi before 29 November 2009 |- | 7B2 || Nissan Diesel bus New Zealand |- | 7FA || Honda SUV made by Honda Manufacturing of Indiana |- | 7FC || Rivian truck |- | 7F7 || Arcimoto, Inc. |- | 7GZ || GMC incomplete vehicles (Savana cutaway) made by Navistar International/International Motors |- | 7G0 || Faraday Future |- | 7G2 || Tesla, Inc. truck (used for Nevada-built Semi Trucks & Texas-built Cybertruck) |- | 7H4 || Hino truck |- | 7H8 || Cenntro Electric Group Limited low-speed vehicle |- | 7JD || Volvo Cars SUV |- | 7JR || Volvo Cars passenger car |- | 7JS || White River Marine Group (trailer) |- | 7JZ || Proterra From mid-2019 on |- | 7KG || Vanderhall Motor Works |- | 7KY || Dorsey (truck trailer) |- | 7MM || Mazda SUV made by MTMUS (Mazda-Toyota Joint Venture) |- | 7MU || Toyota SUV made by MTMUS (Mazda-Toyota Joint Venture) |- | 7MW || Cenntro Electric Group Limited truck |- | 7MZ || HDK electric vehicles |- | 7NA || Navistar Defense/ND Defense |- | 7NY || Lordstown Motors |- | 7PD || Rivian SUV |- | 7RZ || Electric Last Mile Solutions |- | 7SA || Tesla, Inc. (US-built MPVs (e.g. Model X, Model Y)) |- | 7SU || Blue Arc electric trucks made by The Shyft Group |- | 7SV || [[../Toyota/VIN Codes|Toyota]] SUV made by TMMTX |- | 7SX || Global Electric Motorcars (WAEV) 2022- |- | 7SY || Polestar SUV |- | 7TN || Canoo |- | 7UU || Lucid Motors MPV/SUV |- | 7UZ || Kaufman Trailers (trailer) |- | 7VV || Ree Automotive |- | 7WA || Scout Motors (MPV) |- | 7WE || Bollinger Motors incomplete vehicle |- | 7XB || Denago EV Corporation (Low-Speed Vehicle) |- | 7YA || Hyundai & Kia MPV/SUV made by HMGMA |- | 7ZJ || Meyers Manx, LLC (Manx EV Resorter) [Low Speed Vehicle] |- | 7Z0 || Zoox |- | 71T || Slate Auto (truck) |- | 71V || Slate Auto (MPV) |- | 722 || Isuzu North America Corp. (incomplete vehicle - medium duty) |- | 8AB || Mercedes Benz truck & bus (Argentina) |- | 8AC || Mercedes Benz vans (for South America) |- | 8AD || Peugeot Argentina |- | 8AE || Peugeot van |- | 8AF || [[../Ford/VIN Codes|Ford]] Argentina |- | 8AG || [[../GM/VIN Codes|Chevrolet]] Argentina |- | 8AJ || [[../Toyota/VIN Codes|Toyota]] Argentina |- | 8AK || Suzuki Argentina |- | 8AN || Nissan Argentina |- | 8AP || Fiat Argentina |- | 8AT || Iveco Argentina |- | 8AW || Volkswagen Argentina |- | 8A1 || Renault Argentina |- | 8A3 || Scania Argentina |- | 8A7 || Minarelli S.A. |- | 8BB || Agrale Argentina S.A. |- | 8BC || Citroën Argentina |- | 8BN || Mercedes-Benz incomplete vehicle (North America) |- | 8BR || Mercedes-Benz "bus" (van with more than 3 rows of seats) (North America) |- | 8BT || Mercedes-Benz MPV (van with 2 or 3 rows of seats) (North America) |- | 8BU || Mercedes-Benz truck (cargo van with 1 row of seats) (North America) |- | 8CH || Honda motorcycle |- | 8C3 || Honda car/SUV |- | 8G1 || Automotores Franco Chilena S.A. Renault |- | 8GD || Automotores Franco Chilena S.A. Peugeot |- | 8GG || [[../GM/VIN Codes|Chevrolet]] Chile |- | 8LD || General Motors OBB - Chevrolet Ecuador |- | 8LF || Maresa (Mazda) |- | 8LG || Aymesa (Hyundai Motor & Kia) |- | 8L4 || Great Wall Motors made by Ciudad del Auto (Ciauto) |- | 8XD || Ford Motor Venezuela |- | 8XJ || Mack de Venezuela C.A. |- | 8XV || Iveco Venezuela C.A. |- | 8Z1 || General Motors Venezolana C.A. |- | 829 || Industrias Quantum Motors S.A. (Bolivia) |- | 9BD || Fiat Brazil & Dodge, Ram made by Fiat Brasil |- | 9BF || [[../Ford/VIN Codes|Ford]] Brazil |- | 9BG || [[../GM/VIN Codes|Chevrolet]] Brazil |- | 9BH || Hyundai Motor Brasil |- | 9BM || Mercedes-Benz Brazil car, SUV, commercial truck & bus |- | 9BN || Mafersa |- | 9BR || [[../Toyota/VIN Codes|Toyota]] Brazil |- | 9BS || Scania Brazil |- | 9BU ||Gurgel Motores S.A. (defunct Brazilian automaker) |- | 9BV || Volvo Trucks Brazil |- | 9BW || Volkswagen Brazil |- | 9BY || Agrale S.A. |- | 9C2 || Moto Honda Da Amazonia Ltda. |- | 9C6 || Yamaha Motor Da Amazonia Ltda. |- | 9CD || Suzuki (motorcycles) assembled by J. Toledo Motos do Brasil |- | 9DF || Puma |- | 9DW || Kenworth & Peterbilt trucks [incomplete vehicle] made by Volkswagen do Brasil |- | 9EZ || homemade or handbuilt vehicles |- | 92H || Origem Brazil |- | 932 || Harley-Davidson Brazil |- | 935 || Citroën Brazil |- | 936 || Peugeot Brazil |- | 937 || Dodge Dakota |- | 93C || Chevrolet SUV [Tracker] or pickup [Tornado, Montana, S10] (sold in Mexico, made in Brazil) |- | 93H || [[../Honda/VIN Codes|Honda]] Brazil car/SUV |- | 93K || Volvo Trucks Brazil |- | 93P || Volare |- | 93S || Navistar International |- | 93R || [[../Toyota/VIN Codes|Toyota]] Brazil |- | 93U || Audi Brazil 1999–2006 |- | 93W || Fiat Ducato made by Iveco 2000–2016 |- | 93V || Navistar International |- | 93X || Souza Ramos – Mitsubishi Motors / Suzuki Jimny |- | 93Y || Renault Brazil |- | 93Z || Iveco |- | 94D || Nissan Brazil |- | 94N || RWM Brazil |- | 94T || Troller Veículos Especiais |- | 95P || CAOA Hyundai & CAOA Chery |- | 95V || Dafra Motos (motorscooters from SYM) & Ducati, KTM, & MV Agusta assembled by Dafra |- | 95V || BMW motorcycles assembled by Dafra Motos 2009–2016 |- | 95Z || Buell Motorcycle Company assembled by Harley-Davidson Brazil |- | 953 || VW Truck & Bus / MAN Truck & Bus |- | 96P || Kawasaki |- | 97N || Triumph Motorcycles Ltd. |- | 988 || Jeep, Ram [Rampage], and Fiat [Toro] (made at the Goiana plant) |- | 98M || BMW car/SUV |- | 98P || DAF Trucks |- | 98R || Chery |- | 99A || Audi 2016- |- | 99H || Shineray |- | 99J || Jaguar Land Rover |- | 99K || Haojue & Kymco assembled by JTZ Indústria e Comércio de Motos |- | 99L || BYD |- | 99Z || BMW Motorrad (Motorcycle assembled by BMW 2017-) |- | 9FB || Renault Colombia (Sofasa) |- | 9FC || Compañía Colombiana Automotriz S.A. (Mazda) |- | 9GA || [[../GM/VIN Codes|Chevrolet]] Colombia (GM Colmotores S.A.) |- | 9UJ || Chery assembled by Chery Socma S.A. (Uruguay) |- | 9UK || Lifan (Uruguay) |- | 9UT || Dongfeng trucks made by Nordex S.A. |- | 9UW || Kia made by Nordex S.A. |- | 9VC || Fiat made by Nordex S.A. (Scudo, 2025 Titano) |- | 9V7 || Citroen made by Nordex S.A. (Jumpy) |- | 9V8 || Peugeot made by Nordex S.A. (Expert) |} ==References== {{reflist}} {{BookCat}} oc4dzo0s28ga5bvbvm3x1gc5nj605wo Horticulture/Waldsteinia fragarioides 0 142537 4668494 4052772 2026-09-04T03:22:13Z Krok6kola 2720781 ([[c:GR|GR]]) [[c:COM:FR|File renamed]]: [[File:Waldsteinia fragarioides 001.JPG]] → [[File:Waldsteinia ternata and Vinca minor.jpg]] [[c:COM:FR#FR3|Criterion 3]] (obvious error) · Species misidentification. The primary yellow-flowered specimen in this image displays the large, broad, overlapping petals and deeply lobed cuneate foliage diagnostic of the Eurasian Waldsteinia ternata rather than the native Waldsteinia fragarioides. The image also prominently features the evergreen foliage and c... 4668494 wikitext text/x-wiki {{WMOG-header|Waldsteinia fragarioides}}__NOTOC__{{Hortibox|Barren Strawberry | Image = Waldsteinia ternata and Vinca minor.jpg | Binomial = Waldsteinia fragarioides | Genus = | Family = Rosaceae | Variety = | Type = herbaceous ground cover | Sun = | Water = | Soil = | USDA Hardiness Zone = | Sunset Zone = | Propagation = | Pruning season = | Pruning tolerance = | Forcing = | Transplant = | Pest issues = | Disease issues = | Bloom season = | Fruit season = | Sowing methods = | Harvest = | Storage = | Weediness = | Pollination = | Seed Dispersal = | Germination Time = | Germination Signal = | Ripe Seed = | Seed Banking = | Vegetative Spread = | Allelopathy = | Group = | Sowing time = | Days to germination = | Days to baby = | Days to maturity = | Bolting = | Flat cropping = | Planting depth = | Plant spacing = | Row spacing = | Seed collection = | Height and spread = | Root = | Growth rate = | Shade cast = | Underplanting = | Toxicity and edibility = | Patent= | Hybrid type= }} '''Barren Strawberry''' is an herbaceous ground cover grown for its dense growth and showy spring flowers. The "barren" in the name refers to its having no showy fruits. ==Description== Barren strawberry is a creeping herbaceous ground cover, with vaguely strawberry-like leaves and large yellow flowers that appear in spring. ==Growing Conditions== <!--sun, soil, etc.--> ==Varieties== <!--general discussion or bulleted list--> ==Uses== This plant makes a good ground cover for weed suppression in low-maintenance gardens. ==Maintenance== <!--discuss any special maintenance concerns, such as pruning, transplanting, monitoring, etc.--> ==Propagation== <!--discuss propagation--> ==Harvest== <!--Discuss harvesting and storage--> ==Pests and Diseases== ==References== <references/> {{commons|{{SUBPAGENAME}}}} {{Horticat (add "y" where applicable)| | taxa level (family, genus, species, variety) = | large tree = | small tree = | large shrub = | small shrub = | woody vine = | herbaceous vine = | herbaceous plant = | herbaceous ground cover = | woody ground cover = | aquatic = | evergreen = | ephemeral = | spring flowers = | summer flowers = | fall flowers = | winter flowers = | weedy or agressive = | perennial = | annual = | biennial = | full shade = | part shade = | full sun = | drought tolerant = | wet soil tolerant = | quality nectar source = | attracts songbirds = | attracts hummingbirds = | attracts butterflies = | fruit or vegetable = | culinary herb = | edible flower = | medicinal uses = | good for cut flowers = | good for cut fruit = | good for dried cut flowers = | good fragrance = | pest and disease resistant = | deer resistant = | frequently deer browsed = | North America native = | North America invasive = | South America native = | South America invasive = | Europe native = | Europe invasive = | Asia native = | Asia invasive = | Africa native = | Africa invasive = | Australia native = | Australia invasive = | USDA 1 = | USDA 2 = | USDA 3 = | USDA 4 = | USDA 5 = | USDA 6 = | USDA 7 = | USDA 8 = | USDA 9 = | USDA 10 = | USDA 11 = | USDA 12 = | white flowers = | pink flowers = | red flowers = | orange flowers = | yellow flowers = | green flowers = | blue flowers = | purple flowers = | brown flowers = | black flowers = | poisonous to humans = | poisonous to livestock or pets = | silver or gray leaves = | red or purple leaves = | yellow leaves = | blue leaves = | variegated white = | variegated yellow = | variegated multicolor = | horticat template version (used for robitic updates) = 7.12.13 }} 2q96utwsb43hj9n7m75bdshdkzv7gxg User:Srhat 2 144386 4668502 4594782 2026-09-04T07:05:28Z ShakespeareFan00 46022 4668502 wikitext text/x-wiki {{{{{|safesubst:}}}Turkish/Tooltip|a|b}} ===About - ''Hakkında''=== #[[Talk:Turkish/Introduction|Introduction]] - ''Tanıtım'' {{stage short|100%}} #[[Talk:Turkish/About this book|About this book]] - ''Bu kitap hakkında'' {{stage short|100%}} #[[Talk:Turkish/Computing in Turkish|Computing in Turkish]] - ''Türkçe bilgisayar'' {{stage short|100%}} #[[Talk:Turkish/Contributions to this Wikibook|Contributions to this Wikibook]] - ''Bu Vikikitap'a katkılar'' {{stage short|100%}} ===[[Talk:Turkish/Pronunciation and Alphabet|Pronunciation and Alphabet]] - ''Alfabenin okunuşu'' {{stage short|100%}}=== # [[Talk:Turkish/Pronunciation and Alphabet/A-I|A - I]] # [[Talk:Turkish/Pronunciation and Alphabet/İ-R|İ - R]] # [[Talk:Turkish/Pronunciation and Alphabet/S-Z|S - Z]] # [[Talk:Turkish/Pronunciation and Alphabet/Vowel Classifications and Harmony|Vowel Classifications and Harmony]] # [[Talk:Turkish/Pronunciation and Alphabet/Consonant Classifications and Harmony|Consonant Classifications and Harmony]] ===[[Talk:Turkish/Ways of enhancing your Turkish|Ways of enhancing your Turkish]] - ''Türkçenizi geliştirme yolları'' {{stage short|75%}}=== #[[Talk:Turkish/Ways of enhancing your Talk:Turkish/Turkish Satellite Television|Turkish Satellite Television]] # [[Talk:Turkish/Ways of enhancing your Talk:Turkish/Turkish Music|Turkish Music]] # [[Talk:Turkish/Ways of enhancing your Talk:Turkish/Turkish Movies|Turkish Movies]] # [[Talk:Turkish/Ways of enhancing your Talk:Turkish/Turkish on the internet|Turkish on the internet]] # [[Talk:Turkish/Ways of enhancing your Talk:Turkish/Turkish newspapers & magazines|Turkish newspapers & magazines]] ===Lessons - ''Dersler''=== <br /> :;Unit One - ''Ünite Bir'' #[[Talk:Turkish/Lesson One - Greetings|Lesson One - Greetings]] - ''Ders Bir - Tanışma'' {{stage short|75%}} #[[Talk:Turkish/Lesson Two - I am...|Lesson Two - I am...]] - ''Ders İki - Ben...'' {{stage short|100%}} #[[Talk:Turkish/Lesson Three - Asking Questions...|Lesson Three - Asking Questions]] - ''Ders Üç - Soru Sorma'' {{stage short|100%}} #[[Talk:Turkish/Lesson Four - Are you busy today?|Lesson Four - Are you busy today?]] - ''Ders Dört - Bugün meşgul müsün?'' {{stage short|00%}}<small>Needs a lot of work. Give me some ideas, please!</small> #[[Talk:Turkish/Unit One - Test|Unit One - Test]] - ''Ünite Bir - Test'' {{stage short|00%}} <br /> :;Unit Two - ''Ünite İki'' #[[Talk:Turkish/Lesson Five - Asking for directions|Lesson Five - Asking for directions]] - ''Ders Beş - Yön Sorma'' {{stage short|100%}} #[[Talk:Turkish/Lesson Six - Geography of Turkey and the Turkish Republic of Northern Cyprus|Lesson Six - Geography of Turkey and the Turkish Republic of Northern Cyprus]] - ''Ders Altı - Türkiye ve Kuzey Kıbrıs Türk Cumhuriyeti Coğrafyası''[[Image:25%.png]] #[[Talk:Turkish/Lesson Seven - Transport|Lesson Seven - Transport]] - ''Ders Yedi - Taşıma'' {{stage short|00%}} #[[Talk:Turkish/Lesson Eight - Services|Lesson Eight - Services]] - ''Ders Sekiz - Hizmetler'' {{stage short|50%}} #[[Talk:Turkish/Unit Two - Test|Unit Two - Test]] - ''Ünite İki - Test'' {{stage short|00%}} <br /> :;Unit Three - ''Ünite Üç'' #[[Talk:Turkish/Lesson Nine - Kinship|Lesson Nine - Kinship]] - ''Ders Dokuz - Akrabalık'' {{stage short|00%}} #[[Talk:Turkish/Lesson Ten - Kinship: Advanced|Lesson Ten - Kinship: Advanced]] - ''Ders On - Akrabalık:Gelişmiş'' {{stage short|00%}} {{Altaic languages|align=right}} ===Grammar - ''Dil Bilgisi''=== #[[Talk:Turkish/Word Order|Word Order]] - ''Kelime Sırası'' #[[Talk:Turkish/Pronunciation and Alphabet/Vowel Classifications and Harmony|Vowel Classifications and Harmony]] #[[Talk:Turkish/Pronouns|Pronouns]] - ''Adıllar'' #[[Talk:Turkish/Cases|Cases]] - ''Durumlar'' #[[Talk:Turkish/Plural|Plural]] - ''Çoğulluk'' #[[Talk:Turkish/Verbs|Verbs]] - ''Eylemler'' #[[Talk:Turkish/Postpositions|Postpositions]] - ''İlgeçler'' #[[Talk:Turkish/Present Tense|Present Tense]] - ''Şimdiki Zaman'' #[[Talk:Turkish/Negative - Present Continuous Tense|Negative - Present Continuous Tense]] - ''Olumsuz - Şimdiki Zaman'' #[[Talk:Turkish/Interrogative - Present Continuous Tense|Interrogative - Present Continuous Tense]] - ''Soru - Şimdiki zaman'' #[[Talk:Turkish/Past Tense|Past Tense]] - ''Geçmiş Zaman'' #[[Talk:Turkish/Past Tense 2|Past Tense 2]] - ''Geçmiş Zaman 2'' #[[Talk:Turkish/Negative Past Tense|Negative Past Tense]] - ''Olumsuz Geçmiş Zaman'' #[[Talk:Turkish/Past Continuous Tense|Past Continuous Tense]] - ''Geniş Zaman'' #[[Talk:Turkish/NegativePast Continuous Tense|Negative Past Continuous Tense]] - ''Olumsuz Geniş Zaman'' #[[Talk:Turkish/Future Tense|Future Tense]] - ''Gelecek Zaman'' {{/Head1}} See [[:tr:User:Srhat]] <div style="text-align:center; margin: 3px 45% 3px 45%; padding: 3px; width:10%; height:30px; border: 1px solid #d4d4d4; background: #f4f4f4;{{Text default color}};">example</div> #[[Turkish/Simple Present Tense|Simple Present Tense (or Aorist Tense)]] - ''Geniş Zaman'' #[[Turkish/Present Continuous Tense|Turkish/Present Continuous Tense]] - ''Şimdiki Zaman'' #[[Turkish/Future Tense|Turkish/Future Tense]] - ''Gelecek Zaman'' #[[Turkish/Seen Past Tense|Turkish/Seen Past Tense]] - ''Görülen Geçmiş Zaman'' #[[Turkish/Heard Past Tense|Turkish/Heard Past Tense]] - ''Öğrenilen Geçmiş Zaman'' #[[Turkish/Compound Tenses|Turkish/Compound Tenses]] - ''Birleşik Zamanlar'' All pages: {{Special:PrefixIndex/Turkish}} {{tr/word|[[Media:Merhaba.ogg|Merhaba]]!|Hello!}} {{tr/word|Birinci|The first}} {{tr/word|dersinize|to-your-lesson}} {{tr/word|hoşgeldiniz!|welcome (formal)}} If you're wondering what on Earth that just said, here's what it means: '''Hello! Welcome to your first lesson!''' Your first lesson will start with greetings, as they are what you will use in the beginning of conversations. == Greetings== Read the following dialogues. You can hover your mouse pointer over the parts of the dialogue, specific words or suffixes to see what they mean, but you don't have to understand every part of the word, each suffix from the first lesson. You will learn the rules later, so don't worry about them. {| width=100% |width="50%"| {| {{Turkish/Table|dialogue|'''Greetings'''|header align=left|columns=2|width=100%}} |- !colspan=2|''Two friends are talking to each other.'' |- !rowspan="2" style="text-align: left; font-weight:bold"|Ahmet: ! Merhaba! |- | style="border-left-width: 0px" | Hi! |- !rowspan="2" style="text-align: right; font-weight:bold; width: 20%"|Zeynep: | {{tr/word|Merhaba!}} |- | Hi! |} |width="50%"| {| {{Turkish/Table|dialogue|'''Greetings'''|header align=left|columns=3|width=100%}} |- !colspan=3|''Two friends are talking to each other.'' |- | style="text-align:right; width: 5%"| Ahmet: ! {{tr/word|Merhaba!|Hi!}} | Hi! |- | style="text-align:right"| Zeynep: | {{tr/word|Merhaba Ahmet|Hi Ahmet}}, {{tr/word|nasılsın?|how are you?}} | Hi Ahmet, how are you! |- | style="text-align:right; width: 5%"| Ahmet: ! {{tr/word|İyiyim sağ ol, sen?|I'm fine thanks, you?}} | I'm fine thanks, you? |- | style="text-align:right"| Zeynep: | {{tr/word|Ben de iyiyim|I am fine, too.}} | I'm fine, too. |} |} {| {{Turkish/Table|dialogue|'''Greetings'''|header align=left|columns=3|width=50%}} |- !colspan=3|''Two friends are talking to each other.'' |- ! style="text-align:right; width: 5%; font-weight: bold"| Ahmet: ! {{tr/word|Merhaba!|Hi!}} ! Hi! |- | style="text-align:right;"| Zeynep: | {{tr/word|Merhaba Ahmet|Hi Ahmet}}, {{tr/word|nasılsın?|how are you?}} | Hi Ahmet, how are you! |- ! style="text-align:right; width: 5%; font-weight: bold"| Ahmet: ! {{tr/word|İyiyim sağ ol, sen?|I'm fine thanks, you?}} ! I'm fine thanks, you? |- | style="text-align:right;"| Zeynep: | {{tr/word|Ben de iyiyim|I am fine, too.}} | I'm fine, too. |} cu5zno8llmqugkwzmwqb9ufxdc9uavg User:Chtit draco 2 147618 4668276 1096082 2026-09-03T13:17:04Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668276 wikitext text/x-wiki '''<code><small>(en)</small></code>''' See [[w:User:Chtit draco]]. '''<code><small>(fr)</small></code>''' Voir [[w:fr:Utilisateur:Chtit draco]]. azrqkqf1odgw9ynamzbes590kmsl9lo User talk:Jimbeauknows 3 148179 4668466 4650515 2026-09-03T19:43:15Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668466 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jimbeauknows!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 17:53, 6 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Copyright problem with [[:Image:Ap23529odu Detention 01Y7F.jpg]] == {{mbox|type=warning|msg= Thanks for uploading [[:Image:Ap23529odu Detention 01Y7F.jpg]]. The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Ap23529odu Detention 01Y7F.jpg]] and other files you uploaded may soon be deleted unless we can determine the copyright holder and status. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add this information; there's no need to upload the image again. If you have any questions, feel free to contact me, or ask another Wikibookian at the [[Wikibooks:Study help desk|help desk]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 18:12, 3 February 2008 (UTC)}} == [[:Image:Dunce.jpg]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Dunce.jpg]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Dunce.jpg]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 17:53, 6 April 2008 (UTC)}} 9yuuiisd9dtkmeinqvl3q9ot6nzc9sr User:Derbeth/javaLatex 2 149722 4668281 1394728 2026-09-03T13:21:33Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668281 wikitext text/x-wiki == Application == javaLatex is a program creating PDF versions of Wikibooks textbooks. It is able to download book structure, chapter text and graphics from Wikibooks server, generate list of authors and table of contents. The application can be also used to convert single Wikipedia articles. === Limitations === javaLatex does not convert most of templates automatically. Some templates remain commented out in source code, so to make them appear correctly you might have to use Perl/Python script or implement handling of these templates in javaLatex source code. The program is not capable of handling of all odd usages of MediaWiki syntax, so sometimes errors in parsing LaTeX source may appear and in such situations you may be required to edit generated files and fix errors. Consequently, knowledge of LaTeX is very useful when dealing with javaLatex, but with some amount of luck it won't be required. javaLatex won't detect lines in source code listings which are too long, nor will it fix them. If your book covers a programming language, you should look through the output PDF and check if source code exceeds margin. Since pdflatex tool, which translates LaTeX code to PDF, does not support [[w:Graphics Interchange Format|GIF]] images, books using GIF images won't be translated and will cause pdflatex errors. javaLatex downloads GIF images, but you will have to convert them manually to PNG and replace GIF with PNG in LaTeX sources. See [[LaTeX/Importing Graphics#Supported image formats|LaTeX/Importing Graphics]] for more information. The program cannot assure that graphics and tables used in text will look good. The larger the image is, the greater is the chance of damaging text layout around it. You should look through the PDF and manually fix the mistakes. [[LaTeX/Floats, Figures and Captions]] is a great source of information in this field. == Example output == See [[:Image:How To Assemble A Desktop PC.pdf]] (generated by Hagindaz program, see below). [[:pl:Grafika:C.pdf]] is created with the most current version (the book is written in Polish). == Basic information == Program home page, when you can find binaries and the source code, is http://code.google.com/p/javalatex/. Blog http://javalatex.blogspot.com/ serves as a placeholder for announcements and is available as an Atom news feed. javaLatex was created from [[User:Hagindaz/Wiki2LaTeX|Wiki2LaTeX]] code released to public domain by [[User:Hagindaz|Hagindaz]]. It is free software released under [[w:MIT license|MIT license]] and written in Java. == Requirements == * Java Runtime Environment 1.5 or newer * LaTeX distribution You can use [[w:Kile|Kile]] to edit generated LaTeX source. [[w:Netbeans|Netbeans 6]] IDE is recommended to edit source code. ==Usage== '''Before''' you run the program, you have to '''edit''' <code>conversion.properties</code> file. To get help on running the program, type java -jar javaLatex.jar --help http://code.google.com/p/javalatex/wiki/CommandLineOptions gives extensive explanation of command line options. The simplest program invocation is: java -jar javaLatex.jar --title="Raising Chickens" --genall pdflatex main.tex == Tips == ; I've got a table that is so wide that it exceeds page : You have to bound size of at least the widest column. See [[LaTeX/Tables#Text wrapping in tables]] ; I get "! LaTeX Error<nowiki>:</nowiki> Something's wrong--perhaps a missing \item." : Perhaps there's a <code>verbatim</code> or <code>enumerate</code> enviroment inside a table. Change column specifier from <code>c</code> to eg. <code>p{5cm}</code>. See [[LaTeX/Tables#Other environments inside tables]] ; I get "! Missing $ inserted." : If there's a math text inside a table – see above. ; Oh my god! Everything crashes and I can't find the solution! : Try to locate the error - first remove text from chapter that causes error. If this makes the error disappear, bring the chapter text back and try to remove a smaller part of text. After several attempts you should isolate a place where the error resides. Try to fix it and if it does not help - simply remove it and add the text manually. [[pl:User:Derbeth/javaLatex]] n9xi0d0wf3yc892covq3lwey4b7im0y User:ComputerGuy890100 2 152154 4668512 4656982 2026-09-04T07:41:49Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668512 wikitext text/x-wiki {{Userpage}} {{user language|en|N}} {{user language|ko|N}} {{user language|de|N}} Hello! It's [[W:User:ComputerGuy890100|ComputerGuy890100]] from [[Wikipedia]]! [[Image:Smiley.svg|20px]] I was just looking around and I hope to be fully on WikiBooks after a couple of months. {| style="background-color:#FFFFFF;{{Text default color}}; margin:0 auto;" cellpadding="3px" |- | colspan="4" style="text-align:center; background-color:#CAD2ff;{{text default color}};" | [[Wikimedia:Home|Wikimedia Foundation]] |- style="text-align:center" | [[Image:Wikimedia-logo-meta.png|50px]] | [[Image:Commons-logo.svg|50px]] | [[Image:Wikinews-logo.png|50px]] | [[Image:Wikipedia-logo.png|50px]] |- style="background-color:#CAD2ff;;{{Text default color}};text-align:center; font-size:small;" | [[Meta:User:ComputerGuy890100|Wikimedia]] | [[Commons:User:ComputerGuy890100|Commons]] | [[Wikinews:User:ComputerGuy890100|Wikinews]] | [[Wikia:User:ComputerGuy890100|Wikia]] |- style="text-align:center" | [[Image:Wikipedia-logo.png|50px]] | [[Image:Wikisource-logo.svg|50px]] | [[Image:Wiktionary-logo-en.png|50px]] | [[Image:Wikiversity-logo-Snorky.svg|50px]] |- style="background-color:#CAD2ff;{{Text default color}}; text-align:center; font-size:small;" | [[Wikipedia:User:ComputerGuy890100|Wikipedia]] | [[Wikisource:User:ComputerGuy890100|Wikisource]] | [[Wiktionary:User:ComputerGuy890100|Wiktionary]] | [[Wikiversity:User:ComputerGuy890100|Wikiversity]] |} {{center/top}} {| class="boilerplate" id="pd" style="width: 95%; margin: 0 auto; text-align: justify; background: #F1F1DE;{{Text default color}}; padding: 0 10px; border: 1px solid #CC9;" | [[Image:Smiley.svg|64px|left|Public domain]] | ''This user is right now inactive on WikiBooks. Please go to his [[W:User:ComputerGuy890100|Wikipedia userpage]] and he will respond there. Thanks.'' [[Image:Smiley.svg|20px]] |} {{center/end}} 5oterc7ry58j8whtnakyfajtjd74ach User talk:Flynns32547~enwikibooks 3 152414 4668362 2911232 2026-09-03T14:53:02Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668362 wikitext text/x-wiki == Welcome message == G'day, welcome to Wikibooks. To make links in the Cookbook, try putting <code>Cookbook:</code> in front of the linked word, like this: :<code><nowiki>[[Cookbook:garlic|garlic]]</nowiki></code> --> [[Cookbook:garlic|garlic]] Here's our standard welcome message: Welcome, {{PAGENAME}}! {| style="background:white; border:1px solid #abd5f5;; padding:0px; border-spacing:0px; color: #000000;" ! style="background:#d0e5f5; color: #000000;" | [[Wikibooks:Welcome|Getting started]] with Wikibooks |- | style="padding:5px;" | * Wikibooks is a collection of open-source textbooks. Find out [[WB:WIW|what this means]]. * To sign your name (on talk pages), use four tildes, like this: &#126;&#126;&#126;&#126; * For help in using the wiki, see [[Using Wikibooks]]. * For information about the community here, see [[Wikibooks Community]]. * Explore, [[Wikibooks:Be bold|be bold]], and have fun! |} Come introduce yourself at the [[WB:SLN|new users]] page. If you have any questions, you can ask there or contact me personally. [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 09:43, 19 March 2008 (UTC) == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Flynns32547. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Flynns32547~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:12, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:59, 19 April 2015 (UTC) <!-- SUL post-rename notification --> pj9wf6vnsg1ccxoicw25p4umyagchjt User:Srhat/Head1 2 152668 4668500 4409878 2026-09-04T07:04:13Z ShakespeareFan00 46022 4668500 wikitext text/x-wiki {{font/top|style="font-family: Trebuchet MS, sans-serif;"}} <div style="border:5px solid #EEAD0E;background:#FFDEAD;{{Text default color}};"> <div style="padding:0px;border-bottom:3px solid #eead0e;padding-top:1em;background:#FFFACD;{{Text default color}};"> &nbsp;<span style="position:relative; bottom:-1px; background-color:#FFDEAD; border-top:solid 3px #EEAD0E; border-right:solid 3px #EEAD0E; border-bottom:solid 5px #FFDEAD; border-left:solid 3px #EEAD0E; padding:4px 5px 4px 3px;margin-left:1em">[[Image:Crystal Clear app kuser.svg|30px]][[User:Srhat|User page]]</span> <span style="position:relative; bottom:-1px; background-color:#EEE9BF; border-top:solid 3px #EEAD0E; border-right:solid 3px #EEAD0E; border-left:solid 3px #EEAD0E; padding:4px 5px 4px 3px;margin-left:1em">[[Image:Nuvola apps ksirc.png|30px]][[User talk:Srhat|Message page]]</span> </div> </div> {{font/end}} 3cgf0idurfwht5ccqobti6fok4bbox6 4668501 4668500 2026-09-04T07:05:21Z ShakespeareFan00 46022 4668501 wikitext text/x-wiki {{font/top|style="font-family: Trebuchet MS, sans-serif;"}} <div style="border:5px solid #EEAD0E;background:#FFDEAD;{{Text default color}};"> <div style="padding:0px;border-bottom:3px solid #eead0e;padding-top:1em;background:#FFFACD;{{Text default color}};"> &nbsp;<span style="position:relative; bottom:-1px; background-color:#FFDEAD;{{Text default color}}; border-top:solid 3px #EEAD0E; border-right:solid 3px #EEAD0E; border-bottom:solid 5px #FFDEAD; border-left:solid 3px #EEAD0E; padding:4px 5px 4px 3px;margin-left:1em">[[Image:Crystal Clear app kuser.svg|30px]][[User:Srhat|User page]]</span> <span style="position:relative; bottom:-1px; background-color:#EEE9BF;{{Text default color}}; border-top:solid 3px #EEAD0E; border-right:solid 3px #EEAD0E; border-left:solid 3px #EEAD0E; padding:4px 5px 4px 3px;margin-left:1em">[[Image:Nuvola apps ksirc.png|30px]][[User talk:Srhat|Message page]]</span> </div> </div> {{font/end}} 24s00gtwaebfwx4dqptorc1orap9uy6 User talk:Erkan Yilmaz 3 154002 4668477 4651610 2026-09-03T19:58:46Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668477 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">Welcome to Wikibooks, Erkan Yilmaz!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |}&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:22, 1 April 2008 (UTC) :Thank you Mike. I will return this with a transwiki in the future :-) --[[User:Erkan Yilmaz|Erkan Yilmaz]] ([[User talk:Erkan Yilmaz|talk]]) 19:06, 24 April 2008 (UTC) je5rz9d8d89d5yjo1g6fr0zg2beszk1 User talk:Chrisb97 3 154298 4668470 4585965 2026-09-03T19:47:28Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668470 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Chrisb97!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks,<br> ::[[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] &#124; [[Special:Emailuser/Neoptolemus|email]] &#124; [[Special:Contributions/Neoptolemus|contribs]] ) 11:35, 4 April 2008 (UTC) </div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} jn8q2lqo9wzbjxly6v5gpvj28racyhw User talk:Dfssheehan 3 154535 4668480 4651890 2026-09-03T20:02:34Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668480 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Dfssheehan!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:23, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 38z0tb0e4ax1n9ygj9jdl6qjzjq3dpt User talk:Hissheep 3 154538 4668224 4652034 2026-09-03T11:59:15Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668224 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hissheep!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:29, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ceggyqvp7ahdqxq1jig4q54mwewztsa User talk:Cassady-cj 3 154539 4668471 4646062 2026-09-03T19:48:40Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668471 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cassady-cj!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:29, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} pealbwrh2u8rnatdxa9l9x6h7pa7yt2 User talk:Brytton-cj 3 154540 4668305 4647805 2026-09-03T13:41:43Z ShakespeareFan00 46022 4668305 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Brytton-cj!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:29, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ls883gal6due9lrjhho0wtm8o9xgs5o User talk:Burgundi-cj 3 154541 4668452 4647420 2026-09-03T19:18:12Z ShakespeareFan00 46022 4668452 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Burgundi-cj!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:29, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} gv0e0bvhy5vl32v92k4djqnhdv62wht User talk:Hannah-cj 3 154543 4668225 4645064 2026-09-03T12:00:32Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668225 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hannah-cj!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:31, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 2ttc5s0vu7sagh37vgdcnai6eh1rz2y User talk:Fmakwi 3 154555 4668366 4650145 2026-09-03T14:54:41Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668366 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Fmakwi!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:33, 5 April 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} t106r11v9tddyo4xb4vep245kkv3hym User talk:Aphonik~enwikibooks 3 154781 4668298 4650826 2026-09-03T13:35:10Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668298 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Aphonik!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, </div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:11, 7 April 2008 (UTC) ==[[:IB Computer Science/Science Systems Life Cycle and Software Development/Social Significance and Implications of Computer Systems]]== {{mbox|type=notice|msg= [[:IB Computer Science/Science Systems Life Cycle and Software Development/Social Significance and Implications of Computer Systems|This page]] appears to have been created in error (due to a test, or some kind of [[Help:Editing|misplaced edit]]). It might be a [[Help:Stub|stub]], if so, please use [[Talk:IB Computer Science/Science Systems Life Cycle and Software Development/Social Significance and Implications of Computer Systems|the discussion page]] as to explain what this page is about. If it evolves into a [[WB:WIW|legitimate Wikibooks module]], you may remove the tag. If not fixed, explained, or improved, it will automatically be considered a candidate for [[Wikibooks:Deletion policy#Speedy deletions|speedy deletion]] in 7 days. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:11, 7 April 2008 (UTC) }} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Aphonik. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Aphonik~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 22:56, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:33, 19 April 2015 (UTC) <!-- SUL post-rename notification --> dh5k74iqhahgiiwia0nyip4cicx4cl6 User talk:Chuckstopher 3 154994 4668473 4649172 2026-09-03T19:52:13Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668473 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Chuckstopher!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">{{#if:|Thanks, }}</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 01:28, 9 April 2008 (UTC) 8n511ztgu6i0z1duy8f4r94qx0hnj4j User talk:Akhram 3 155125 4668241 4650863 2026-09-03T12:20:16Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668241 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Akhram!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5;{{Text default color}}; background-color:#d0e5f5; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">{{#if:[[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] &#124; [[Special:Emailuser/Neoptolemus|email]] &#124; [[Special:Contributions/Neoptolemus|contribs]] ) 23:19, 9 April 2008 (UTC)|Thanks, [[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] &#124; [[Special:Emailuser/Neoptolemus|email]] &#124; [[Special:Contributions/Neoptolemus|contribs]] ) 23:19, 9 April 2008 (UTC)}}</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[Spanish/Answers/¿Cuándo es tu cumpleaños?]] == You nominated this for deletion (I changed it to a speedy deletion for you; see the [[WB:DP|deletion policy]]), but I don't know where you moved the content to. I need to know before I can delete the page. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 01:33, 10 April 2008 (UTC) :*'''[[User talk:Mike.lifeguard#Spanish/Answers/¿Cuándo es tu cumpleaños?|Answers.]]''' == Spanish == Hello. Thanks for your switch from the old system to the fancy templates. It's really useful :). Regards, &mdash;[[User:Celestianpower|Cel<span style="color: green;">es</span>tianpower]] <sup>[[user talk:Celestianpower|háblame]]</sup> 23:25, 11 April 2008 (UTC) 45qjowwkfnk7fqwcvznq9hfctetzoje User talk:Chris.rigby.69 3 155198 4668476 4643220 2026-09-03T19:57:37Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668476 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Chris.rigby.69!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks </div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 20:45, 10 April 2008 (UTC) 7l7i26t6hftykvaagdxvkmez01pu4va User talk:Daniel Jones 3 155218 4668478 4646850 2026-09-03T20:00:00Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668478 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Daniel Jones!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks </div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:04, 11 April 2008 (UTC) ==[[:A History of Hacking]]== {{mbox|type=notice|msg= [[:A History of Hacking|This page]] appears to have been created in error (due to a test, or some kind of [[Help:Editing|misplaced edit]]). It might be a [[Help:Stub|stub]], if so, please use [[Talk:A History of Hacking|the discussion page]] as to explain what this page is about. If it evolves into a [[WB:WIW|legitimate Wikibooks module]], you may remove the tag. If not fixed, explained, or improved, it will automatically be considered a candidate for [[Wikibooks:Deletion policy#Speedy deletions|speedy deletion]] in 7 days. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:04, 11 April 2008 (UTC) }} fmibj0t2isnnlc9nuy3qf7148y3ld2w User talk:Cifuentes.mx~enwikibooks 3 155310 4668399 4665020 2026-09-03T15:25:25Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668399 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cifuentes.mx!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:[[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] &#124; [[Special:Emailuser/Neoptolemus|email]] &#124; [[Special:Contributions/Neoptolemus|contribs]] ) 15:07, 12 April 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] &#124; [[Special:Emailuser/Neoptolemus|email]] &#124; [[Special:Contributions/Neoptolemus|contribs]] ) 15:07, 12 April 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Cifuentes.mx. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Cifuentes.mx~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:02, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:48, 19 April 2015 (UTC) <!-- SUL post-rename notification --> kwyuns63p42rd9crbk3o5opbhz6c5jk User talk:HappyGirl23 3 155324 4668227 4648498 2026-09-03T12:01:34Z ShakespeareFan00 46022 4668227 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, HappyGirl23!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:|<div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks </div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 20:59, 12 April 2008 (UTC) 51ne6xn59tmj7mgl764kgz4nqlqzl1b User talk:Hugh jack 3 155454 4668228 4651912 2026-09-03T12:02:54Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668228 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hugh jack!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks </div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 18:03, 14 April 2008 (UTC) {{mbox|type=warning|msg='''Wikibooks regretfully cannot accept [[Wikibooks:Copyrights|copyrighted]] materials.'''<br/>We [[Wikibooks:Welcome, newcomers|welcome]] and appreciate your contributions. If [[:Automating Manufacturing Systems with PLCs/Introduction]] uses an acceptable copyleft license or the copyright holders are willing to give [[Wikibooks:Boilerplate_request_for_permission|permission]] to use it under an acceptable copyleft license, then we need you to include the licensing information with it. Please read [[Wikibooks:Media]] to learn more about our requirements. After 7 days if this is not addressed appropriately we will have to delete it [[WB:COPYVIO|per policy]]. If you have any questions you can ask me personally or ask in the [[WB:HELP|reading room]]. Thank you; Happy editing! &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 18:02, 14 April 2008 (UTC)}} == Hello! == Hello Hugh jack, welcome to Wikibooks. I saw your new book, and am very interested to see how it progresses. I'm an EE myself (a soon-to-graduate student, anyway), and am pretty familiar with this area. I've started (although often have not finished) several books in this area, such as [[Programmable Logic]], [[Digital Circuits]], and [[Embedded Systems]]. I also helped out with a class project on [[Embedded Control Systems Design]], which is similar. I would really like to see how your book turns out, and I would be willing to help upload it if you need assistance with that. Welcome to Wikibooks! --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 18:46, 16 April 2008 (UTC) lb8h9w4n406ufkg27bu1xvwdghv3d85 User talk:Gaspah 3 155848 4668355 4586245 2026-09-03T14:43:12Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668355 wikitext text/x-wiki == Welcome message == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Gaspah!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:[[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 06:28, 20 April 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 06:28, 20 April 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 8l6e0tpp3amxqjla1ajgksvvhihaqsb User talk:Geke 3 155996 4668352 4643841 2026-09-03T14:40:43Z ShakespeareFan00 46022 4668352 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Geke!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks </div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:29, 21 April 2008 (UTC) io7k5sq9xa876ztd4mg1zlzork4k4lg User talk:Hall0829 3 156054 4668229 4591345 2026-09-03T12:04:43Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668229 wikitext text/x-wiki == Welcome message == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hall0829!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:[[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:31, 22 April 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:31, 22 April 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} htjo58uiz62dp2eis4rit5ree0jd9lc User talk:Buttercrunch1 3 156055 4668396 4665012 2026-09-03T15:22:56Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668396 wikitext text/x-wiki == Welcome message == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Buttercrunch1!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:[[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:32, 22 April 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:32, 22 April 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} r87uabg8h1vbbxxjc9dtbek4pic05aa User talk:Epocolis 3 156058 4668479 4645165 2026-09-03T20:01:20Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668479 wikitext text/x-wiki == Welcome message == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Epocolis!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:[[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:44, 22 April 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:44, 22 April 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==[[:Mathematics for CAPE]]== {{mbox|type=notice|msg= [[:Mathematics for CAPE|This page]] appears to have been created in error (due to a test, or some kind of [[Help:Editing|misplaced edit]]). It might be a [[Help:Stub|stub]], if so, please use [[Talk:Mathematics for CAPE|the discussion page]] as to explain what this page is about. If it evolves into a [[WB:WIW|legitimate Wikibooks module]], you may remove the tag. If not fixed, explained, or improved, it will automatically be considered a candidate for [[Wikibooks:Deletion policy#Speedy deletions|speedy deletion]] in 7 days. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 15:04, 22 April 2008 (UTC) }} == [[Mathematics for Caribbean Advance Mathematics]] == I am requesting this book be deleted. It has no mathematical content at all. You can discuss this in the reading room. [[User:NumberTheorist|NumberTheorist]] ([[User talk:NumberTheorist|talk]]) 03:30, 14 February 2010 (UTC) nr1y0xe7mvqu2m5685i9839foke600k User talk:Flal 3 156059 4668368 4586001 2026-09-03T14:56:54Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668368 wikitext text/x-wiki == Welcome message == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Flal!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:[[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:44, 22 April 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:Webaware|Webaware]]&nbsp;<sup>[[User_talk:Webaware|talk]]</sup> 05:44, 22 April 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 98oc9lly99nrniu7m381h793qbh37ox User talk:Dekes12~enwikibooks 3 156414 4668506 4643294 2026-09-04T07:14:18Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668506 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Dekes12!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:|<div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks </div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 19:48, 27 April 2008 (UTC) ==[[:What does it take to be a competent server]]== {{mbox|type=warning|msg= '''[[:What does it take to be a competent server|What does it take to be a competent server]] has been nominated for deletion.'''<br/>You are being notified because you have contributed to this work. Please see its [[WB:VFD#What does it take to be a competent server|votes for deletion entry]] for the specific reasons why its been nominated for deletion, and if you wish to participate in the discussion for or against its deletion. If you haven't already, please see our [[WB:DP|deletion policy]]. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 01:47, 1 May 2008 (UTC) }} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Dekes12. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Dekes12~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:09, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:52, 19 April 2015 (UTC) <!-- SUL post-rename notification --> 2f3dyqj0hqfzagbmi9zxb3ydo9cm3mx User talk:Glane23 3 156738 4668351 4648831 2026-09-03T14:39:31Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668351 wikitext text/x-wiki ''Geoff Lane'' ---- <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Glane23!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 22:43, 1 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 22:43, 1 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} dqz8ctweqha4cey1mma0m2okior51vn User talk:Gutzw004 3 156838 4668354 4642814 2026-09-03T14:41:53Z ShakespeareFan00 46022 4668354 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Gutzw004!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 2 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 2 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} egdbg0q20et23wynq2fb2qhccqsboen User talk:Cdl1591 3 156840 4668549 4646663 2026-09-04T10:44:57Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668549 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cdl1591!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 2 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 2 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} dl1p9so29t82q2wevdy9u25qb5zn2ne User talk:C Guglielmetti 3 156842 4668542 4645750 2026-09-04T10:10:18Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668542 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, C Guglielmetti!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 2 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 2 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 8no6o9fuugq7ghq10yc9lyw7xu7d1c7 User talk:Graviphoton (usurped) 3 157101 4668356 4646642 2026-09-03T14:44:38Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668356 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Graviphoton!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 18:40, 6 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 18:40, 6 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} {{mbox|type=warning|msg='''Wikibooks regretfully cannot accept [[Wikibooks:Copyrights|copyrighted]] materials.'''<br/>We [[Wikibooks:Welcome, newcomers|welcome]] and appreciate your contributions. If [[:Relativity - Advanced]] uses an acceptable copyleft license or the copyright holders are willing to give [[Wikibooks:Boilerplate_request_for_permission|permission]] to use it under an acceptable copyleft license, then we need you to include the licensing information with it. Please read [[Wikibooks:Media]] to learn more about our requirements. After 7 days if this is not addressed appropriately we will have to delete it [[WB:COPYVIO|per policy]]. If you have any questions you can ask me personally or ask in the [[WB:HELP|reading room]]. Thank you; Happy editing! &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 18:29, 10 May 2008 (UTC)}} Mike, its Graviphoton I am the author of the work published at BAUT forums. So there is no violation here. == Suggested reading == Have a look at: [[Consciousness_Studies/Table_Of_Theories]] [[User:RobinH|RobinH]] ([[User talk:RobinH|talk]]) 11:41, 16 May 2008 (UTC) == [[Relativity_-_Advanced]] == This book is likely to go the same way as the other one. Have you considered adding the content to the modern physics bookshelf? Take a look at [[Special relativity]] for instance. Again, all contributions would need to refer to published work by others. [[User:RobinH|RobinH]] ([[User talk:RobinH|talk]]) 11:46, 16 May 2008 (UTC) 5epi4996vs6q3z8b5lbdz7pxbvyjkj6 User talk:Ehaonowa 3 157377 4668550 4644289 2026-09-04T10:46:19Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668550 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ehaonowa!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:51, 9 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:51, 9 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} qcbb782k33xklxh7sam7qs4ftri93vc User talk:B Fizz 3 157379 4668398 4665015 2026-09-03T15:24:26Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668398 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, B Fizz!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:51, 9 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:51, 9 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 3l6vok5fl4n3yalpzrsjfbgh68hnzeg User talk:Ahmedyasir 1986 3 157381 4668242 4652291 2026-09-03T12:21:35Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668242 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ahmedyasir 1986!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:51, 9 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:51, 9 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} s8n1sveq20jqrbf3f484aibxco7bhnh User talk:Elp3668 3 157502 4668551 4646709 2026-09-04T10:47:48Z ShakespeareFan00 46022 4668551 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Elp3668!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 17:10, 10 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 17:10, 10 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Elidania Perez Biochemistry.pdf]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Elidania Perez Biochemistry.pdf]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Elidania Perez Biochemistry.pdf]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 17:11, 10 May 2008 (UTC)}} 8u20fk9fwjk4vqs125zsksqnwrdnadh User talk:Abcallahan 3 158048 4668258 4651368 2026-09-03T12:50:27Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668258 wikitext text/x-wiki <div style="text-align: center;">[http://en.wikibooks.org/w/index.php?title=User_talk:Abcallahan&action=edit&section=new Leave a new message]</div> ---- <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Abcallahan!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:11, 14 May 2008 (UTC)|<div style="background-color:#transparent;color:iherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:11, 14 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == The importance of reading == I agree that reading is the foundation of all other learning. It's so important what elementary teachers do. I applaud you for seeing the need through your daily work. Students learn so much better when reading is more than just 15 minutes a day, like you said -- when it's part of every subject from math to science to PE. What type of books do you enjoy reading on your own? I think it's important to set an example. [[User:Lroth009|Lroth009]] ([[User talk:Lroth009|talk]]) 02:29, 28 May 2008 (UTC) == Hi Adam == I agree with your thoughts on how children should be prepared for the future. I was a teacher assistant for two years before I continued my education to become an educator. I have seen a lot of children that struggle with math and reading because their parents have not been taught to view those skills as important. I want to also be a teacher to help the children be prepared for the future and not just tomorrow. I think that you have a wonderful philosophy about how education should be. [[User:Jmurphy|Jmurphy]] ([[User talk:Jmurphy|talk]]) 21:29, 29 May 2008 (UTC) == I couldn't agree more == I enjoyed reading your philosophy exspecially of the reading as a steppin stone.I agree that 15 to 30 minutes of reading time isn't enough. Even if they do 30 minutes of reading time when you have a class of 20 to 30 kids it just isn't enough time. That gives them a chance to read a couples sentences a paragragh if they're lucky. my younger brother struggled greatly with reading in elementry school and it made it very hard for him. luckily he had some very good teachers that put the extra effort into making sure he got the skills he needed. Unfortunatly, Not every child is that lucky. [[User:Pbald005|Pbald005]] ([[User talk:Pbald005|talk]]) 19:17, 1 June 2008 (UTC) skrocaulmqiv62lw9odyl7eg9oufmnp User talk:Joshford 3 158286 4668472 4651160 2026-09-03T19:50:34Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668472 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Joshford!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 19:26, 16 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 19:26, 16 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Magneticdisk.jpg]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Magneticdisk.jpg]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Magneticdisk.jpg]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 19:26, 16 May 2008 (UTC)}} :Please check all your uploads. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:34, 20 May 2008 (UTC) 11c22a4qz397djo4l57xvofpsvsmngg User talk:Bjaco18~enwikibooks 3 158357 4668397 4665014 2026-09-03T15:23:36Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668397 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Bjaco18!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 22:32, 17 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 22:32, 17 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Bjaco18. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Bjaco18~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 22:59, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:39, 19 April 2015 (UTC) <!-- SUL post-rename notification --> 0tapyzlwzrv9vwt3mjdxvdbv4jjcac4 User talk:Eschm001 3 158534 4668464 4648789 2026-09-03T19:41:50Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668464 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Eschm001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:32, 20 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:32, 20 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == READER RESPONSES == ==Hi Elizabeth,== I enjoyed reading your teaching philosophy. I know you said you're still forming it, something I'm sure we'll all be doing throughout the teaching program and our careers, but I think you have an impressive start! I agree with maintaining an open mind as a teacher and enforcing tolerance and appreciation for differences. I believe our students will take cues from us as teachers and anything we can do to set a positive and tolerant example is helpful. I also agree with the need for continuing education among teachers. We need to stay abreast of new material we can use in our classes and new technologies to implement. Keeping things fresh is one way to keep interest among students. I'm interested in learning more about the "power teaching" method you mentioned. Thanks for sharing your great ideas! - Mary [[User:Mworr002|Mworr002]] ([[User talk:Mworr002|talk]]) 02:49, 31 May 2008 (UTC) == Hi Betsy! == That is a great pic! That must have been an amazing trip! Congratulations on all your degrees...it sounds like you are going to be the epitome of a lifelong learner. I commend you on wanting to continue that throughout your teaching career. What made you choose to teach, or have you always known you wanted to do that? Also, considering your personality and learning specialties in psychology and such, is there any type of program your would especially want to participate in at a school where you teach, or a program that you want to start? Sincerely, Brandie ([[User:Bthom039|Bthom039]] ([[User talk:Bthom039|talk]]) 02:56, 2 June 2008 (UTC)) cx2zfe6tizyia0gu36wvwrr3qw2y1r3 User talk:Emoskal 3 158535 4668553 4650543 2026-09-04T10:50:41Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668553 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Emoskal!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> {{#if:&nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:36, 20 May 2008 (UTC)|<div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:36, 20 May 2008 (UTC)</div>}} |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Naming Convention == Hi Emoskal, Hi! Your subpages should follow some naming convention which include the book title. Using subpages that would be "Booktitle/Chapterdescription". See [[Wikibooks:Naming conventions]] and the current discussion at [[Wikibooks:Hierarchy naming scheme]]. You can move pages with the "move" command on top of every page once you are logged in. I have moved [[Robots and Artificial Intelligence]] to [[Advanced Robotics/Robots and Artificial Intelligence]] so that it complies and I also fixed your TOC so that future pages will be created in the proper place. If you have any questions, please feel free to drop me a note on [[User_talk:Jomegat|my talk page]]. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|talk]]) 12:33, 21 May 2008 (UTC) {{mbox|type=warning|msg='''Wikibooks regretfully cannot accept [[Wikibooks:Copyrights|copyrighted]] materials.'''<br/>We [[Wikibooks:Welcome, newcomers|welcome]] and appreciate your contributions. If [[:Advanced Robotics/Robots and Artificial Intelligence]] uses an acceptable copyleft license or the copyright holders are willing to give [[Wikibooks:Boilerplate_request_for_permission|permission]] to use it under an acceptable copyleft license, then we need you to include the licensing information with it. Please read [[Wikibooks:Media]] to learn more about our requirements. After 7 days if this is not addressed appropriately we will have to delete it [[WB:COPYVIO|per policy]]. If you have any questions you can ask me personally or ask in the [[WB:HELP|reading room]]. Thank you; Happy editing! &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 20:51, 22 May 2008 (UTC)}} :Please do not blank pages like that. If you want the page deleted, use {{tlx|delete|reason for requesting deletion}}. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 23:39, 22 May 2008 (UTC) 44vkng9837g3ex0szunqcd896wrrxn8 User talk:Botany44 3 158566 4668304 4646418 2026-09-03T13:40:35Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668304 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Botany44!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 01:10, 21 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} q7edgwmq23c28mkoiwdy71a062licxm User talk:Cwhit107 3 158695 4668237 4648998 2026-09-03T12:14:30Z ShakespeareFan00 46022 4668237 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cwhit107!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 20:34, 22 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Dinner.jpg]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Dinner.jpg]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Dinner.jpg]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 20:34, 22 May 2008 (UTC)}} [[User:Dcarn004|Dcarn004]] ([[User talk:Dcarn004|talk]]) 02:51, 2 June 2008 (UTC) You sound quite determined and on your way where you need to be, good for you, Candi! I teach ESL at an elementary school in VA. I do agree with your stance that "Students should be taught that boys and girls are equal". I'd also suggest - make sure you help them realize how very different they are, and how much they compliment each others! Re. grouping in accordance to their levels, it sometimes does wonders for the weaker kids to be encouraged and inspired by the more proficient classmates: certain activities could be routinely incoprorated into teaching strategies. 0tiu0h91xvnlhvponqvb8y3tbgxnpx2 User talk:JMBryant 3 158699 4668445 4657127 2026-09-03T19:08:28Z ShakespeareFan00 46022 4668445 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, JMBryant!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 14:11, 25 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} {{mbox|type=warning|msg='''Wikibooks regretfully cannot accept [[Wikibooks:Copyrights|copyrighted]] materials.'''<br/>We [[Wikibooks:Welcome, newcomers|welcome]] and appreciate your contributions. If [[:Cookbook:Bambi Bolognaise]] uses an acceptable copyleft license or the copyright holders are willing to give [[Wikibooks:Boilerplate_request_for_permission|permission]] to use it under an acceptable copyleft license, then we need you to include the licensing information with it. Please read [[Wikibooks:Media]] to learn more about our requirements. After 7 days if this is not addressed appropriately we will have to delete it [[WB:COPYVIO|per policy]]. If you have any questions you can ask me personally or ask in the [[WB:HELP|reading room]]. Thank you; Happy editing! &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 14:10, 25 May 2008 (UTC)}} :The recipe at <http://www.italiansrus.com/recipes/bolognaisesauce.htm> is MY recipe, contributed to them by me. I did not transfer my copyright, which I still own. James Bryant ::I need you to email permissions-en@wikimedia.org to verify this. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 14:11, 25 May 2008 (UTC) :Eventually done, FWIW. :Cancer disrupts life. :JMB [[User:JMBryant|JMBryant]] ([[User talk:JMBryant|discuss]] • [[Special:Contributions/JMBryant|contribs]]) 06:50, 11 August 2026 (UTC) 3zz9y2mezmrrtk4i0p2hx3c8lqwqgmf User talk:Gorrenswim 3 158885 4668350 4643569 2026-09-03T14:38:20Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668350 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Gorrenswim!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:46, 25 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Simplecontol.JPG]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Simplecontol.JPG]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Simplecontol.JPG]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:47, 25 May 2008 (UTC)}} 07lk7gy47g13jxfk0s81m9vctx7rlmh User talk:Cojames 3 158886 4668238 4642938 2026-09-03T12:16:37Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668238 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cojames!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:46, 25 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Cojamesphotoportrait.jpg]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Cojamesphotoportrait.jpg]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Cojamesphotoportrait.jpg]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:51, 25 May 2008 (UTC) }} Hi Courtney, We share the same passion. I am a Spanish major also. I am an up and rising senior. I returned to ODU after sitting out for Twenty years and now I am close to having my dream. I just want you to know you will have your masters before you realize it. Buena suerte! Que tenga un buen dia Sjone085 (talk) 15:39, 28 May 2008 (UTC) Retrieved from "http://en.wikibooks.org/wiki/User:Cojames" [[User:Sjone085|Sjone085]] ([[User talk:Sjone085|talk]]) 15:48, 28 May 2008 (UTC) Hi Courtney, I have to agree with you about your opinion that 90 minute class sessions are long periods in which to keep a student engaged. I am currently teaching high school science at Granby and have found that the best way to keep a student 'entertained' for a full 90 minute block is to divide the class into two 'mini-sessions'. After briefly reviewing the previous lesson's materials (about 5 minutes), I will provide some kind of hook into the new topic of the day. I lecture or introduce new material for the remainder of the first half of class and then I have students do some kind of hand's on activity for the last portion. I find that this keeps them engaged, while allowing me to move around the room to access who "get's it" and who needs additional help. Anyway, hope that will be of a little help to you! [[User:Kalperin|Kalperin]] ([[User talk:Kalperin|talk]]) 22:44, 1 June 2008 (UTC) Hi Courtney, My name is Shannon and I really enjoyed reading your page. I know from personal experience that I droped 2 Spanish classes before meeting a teacher who was passionate about teaching the languae. So I was very excited to hear about you teaching philosophy. I think it sounds great that you are a forever student (I am doing the same sort of thing) And I wish you the best of luck.[[User:Swrig020|Swrig020]] ([[User talk:Swrig020|talk]]) 11:54, 1 June 2008 (UTC) rxf1bbbqfo9t3xxs07vad22lcqwlnxk 4668239 4668238 2026-09-03T12:16:55Z ShakespeareFan00 46022 /* Image:Cojamesphotoportrait.jpg is missing license or source information */ 4668239 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cojames!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:46, 25 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Cojamesphotoportrait.jpg]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|text= '''Thanks for uploading [[:Image:Cojamesphotoportrait.jpg]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Cojamesphotoportrait.jpg]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:51, 25 May 2008 (UTC) }} Hi Courtney, We share the same passion. I am a Spanish major also. I am an up and rising senior. I returned to ODU after sitting out for Twenty years and now I am close to having my dream. I just want you to know you will have your masters before you realize it. Buena suerte! Que tenga un buen dia Sjone085 (talk) 15:39, 28 May 2008 (UTC) Retrieved from "http://en.wikibooks.org/wiki/User:Cojames" [[User:Sjone085|Sjone085]] ([[User talk:Sjone085|talk]]) 15:48, 28 May 2008 (UTC) Hi Courtney, I have to agree with you about your opinion that 90 minute class sessions are long periods in which to keep a student engaged. I am currently teaching high school science at Granby and have found that the best way to keep a student 'entertained' for a full 90 minute block is to divide the class into two 'mini-sessions'. After briefly reviewing the previous lesson's materials (about 5 minutes), I will provide some kind of hook into the new topic of the day. I lecture or introduce new material for the remainder of the first half of class and then I have students do some kind of hand's on activity for the last portion. I find that this keeps them engaged, while allowing me to move around the room to access who "get's it" and who needs additional help. Anyway, hope that will be of a little help to you! [[User:Kalperin|Kalperin]] ([[User talk:Kalperin|talk]]) 22:44, 1 June 2008 (UTC) Hi Courtney, My name is Shannon and I really enjoyed reading your page. I know from personal experience that I droped 2 Spanish classes before meeting a teacher who was passionate about teaching the languae. So I was very excited to hear about you teaching philosophy. I think it sounds great that you are a forever student (I am doing the same sort of thing) And I wish you the best of luck.[[User:Swrig020|Swrig020]] ([[User talk:Swrig020|talk]]) 11:54, 1 June 2008 (UTC) fmyq2djsx3nm9hzp1uzx2bcq0fiulr3 User talk:Bthom039 3 158900 4668453 4642559 2026-09-03T19:20:43Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668453 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;"> I thought it was notable that you said you plan to make your lessons creative and interesting, but that you are also strict. I also hope to hold my students to high standards, but I wonder if that is harder to do in the real world? I'm curious because you said you have been teaching for several years. Do administrators support you when you feel you need to give a lower grade to a student who isn't working to his or her ability? Is it hard to maintain high standards when other teachers do not? I ask because I have seen low expectations in some schools and very high expectations in others. [[User:Lroth009|Lroth009]] ([[User talk:Lroth009|talk]]) 02:46, 28 May 2008 (UTC) Your philosophy is great. To exercise the mind and encourage the students to be creative at all times are skills that will last a lifetime. It is not a crime to make students learn because they are applying the information, rather than memorizing and reciting. I appreciate your philosophy and believe it will work wonderfully in your classroom. Tre' [[User:Abroo015|Abroo015]] ([[User talk:Abroo015|talk]]) 01:34, 9 June 2008 (UTC) I think you have a Great Philosophy and a creative approach is always a great idea. The only thing that i think is that you may be a little to serious about being so strict. It may just be because im younger than you are but i feel that i never learned as well in a strict setting as i did in a not so strict setting. This week the teacher that im observiing told me that they are just kids and kids will be kids so let them have fun to some extent. IM sure you will be a great teacher though and best of luck to you. Joseph Lucente [[User:JLuce004|JLuce004]] ([[User talk:JLuce004|talk]]) 18:43, 3 June 2008 (UTC) Wow, you are very ambitious. I love school personaly and I'am glad to see someone working toward a masters degree. I will be working toward my masters degree next fall. If ODU doesn't find another class that I have to take. I don't know where they keep finding classes I feel that I have taken everything possible.I think that now a days teachers need to be strict. Kids think they can get away with everything. I think knowing another language is great. Good luck with everything you do. [[User:Cwhit107|Cwhit107]] ([[User talk:Cwhit107|talk]]) 23:23, 31 May 2008 (UTC) [[Wikibooks:Welcome|Welcome]] to Wikibooks, Bthom039!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 13:56, 25 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} I Brandie I did the peer review of your article. I thought it was very informative and very interesting. You had very few spelling errors however some parts confused me. An interview from a gifted student would be a plus. :) '''peer review''''''Bold text'' '''Only concentrate on bolded words.''' The Needs of Gifted Students by Brandie Thomas The label “gifted student” is one that requires special attention, no different than for a student labeled “learning disabled” or “ADHD.” There is no way to present every optional teaching method for dealing with gifted students in one article. I will simply attempt to present both sides to the question of whether gifted students can “take care of themselves.” There are many differing options on the subject with many reasons for each side. However, the beauty of this topic is that there are options for compromises, meaning a teacher may not have to choose one extreme (gifted students always independently teaching themselves and meeting their own needs) or the other (fully integrating them into a regular '''classroom).''' Let’s explore. Learning Targets: Define differentiation and inclusion. Describe how inclusion and pull-out educational methods can be combined. Recognize appropriate methods to enrich streamlined lessons. Identify the pros and cons of both pull-out classes and '''integrated''' classrooms. I will include a sidebar here of a link to reproducible print-outs to use with gifted children. Inclusion The first teaching method option supports the answer that yes, gifted students can take care of themselves. It is full integration of gifted students into a classroom. Before the details are discussed, it is important to note that 61% of teachers do not have formal training in teaching gifted children (National Association for Gifted Children, 2008). Inclusion is most commonly defined as “grouping of students in regular classrooms without regard to ability. It is based on social, not academic concerns” (Nordby, 2004). The fully-streamlined gifted student would be in a regular classroom all day with possibly only a few extra activities to occupy their minds. Another course of full integration is for children to enter kindergarten a year early or for first grade to be skipped altogether; that way, these gifted children are shooed onto the next level where learning in a regular classroom will theoretically be on their level. However, parents may choose not to do this when taking into consideration differences between their child and older children such as being too small for athletics or other concerns. Later, compromised versions of inclusion will be discussed. This teaching method of full integration holds the premise that gifted children can indeed take care of themselves, in the respect that they can keep themselves busy and on task on the many '''occasions''' when they finish their assigned tasks before other children. Enrichment in the regular classroom can be put into action with a variety of methods. Just a few of these are: grouping kids based on level of achievement (in reading, for example), called and discussed by Smutney et. al. as “tiered groups”; and having a gifted student become a “resident expert” in a subject of the teacher or student’s choosing. Gifted students tend to think differently and often are plagued by other issues, just a few of which are feeling alienated for being “smarter” than friends, “super-high expectations” placed on them, and being “overwhelmed” by their '''over average''' skills (Delisle & Lewis, 2003). Smutny, Walker, & Meckstroth list several more major problems that are faced across the board by most gifted children. Some of these problems might be fairly difficult to identify or uncover like introversion, having difficulty finding a balance of control concerning independence and nonconformity, and being “deeply” concerned about the issues of the world and maybe feeling helpless about these situations. For any of these issues [and other issues that might come with being gifted] to be noted and addressed, teachers must have real time and pay special attention to their gifted students. In an inclusive classroom, it is extremely difficult to make that time. Also, a teacher might not have enough work to keep a gifted student actively learning and experimenting with new knowledge. Additional worksheets are neither a reward for finishing work early and correctly, nor are they effective learning tools all the time. These two issues are among the first discussed regarding why students should not be fully integrated into a classroom. Proponents of this stance claim that gifted students are not being allowed or coached to live up to their potential while they are taught with these methods. There are some positives to the model of inclusion. Integrated gifted students are around other kids their age. In a regular classroom, teachers can make sure the students are getting the information they need for their end-of-grade tests, not just working on projects or missing details by teaching themselves. Gifted students are less likely to be singled out even if they do finish work early. In an integrated classroom other students are more likely to see the gifted students as leaders whereas if they are taken out of the classroom, a negative '''connotation''' is easily pinned on them. There is also no extra work from a separate class if there is no extra class. That is something most students would appreciate, even if the “extra work” were fun activities and exercises. Finally, in this situation, other students’ parents are less likely to claim that gifted kids are getting special privileges (Smutny et. al.). Taking Care of Themselves: Pull-Out Classes Delisle & Lewis break down the different levels of pull-out classes and this breakdown is summed up in Figure 3.7 on page 67 which shows a triangular diagram of “appropriate pacing” of these levels: enrichment in the regular classroom to special classes up to special schools. (The first level, enrichment in the regular classroom, was discussed in the inclusion section of this article.) This diagram is not suggesting that all gifted students participate in all three levels but to instead find the level which is most appropriate for their learning needs. Of course, all school districts do not offer these choices. In my research, my experience as a teacher and gifted student and in talking with a mix of teachers, having special classes for gifted students is probably the most effective pull-out class route. Some schools offer as part of their gifted students’ enrichment program “extras” like seminars, or year-long projects that teach more about writing skills, go more in-depth, and maybe require a hands-on project, for example. All three of the year-long project components delve deeper into the learning realm that these students would be receiving in a regular classroom. Also in elementary and middle schools are classes that students attend, taking time out of their regular classes or classroom that expand on regular classroom lessons. Delisle & Lewis also mention regional and national scholarly competitions that advocate creative thinking and/or problem-solving, such as Odyssey of the Mind (which I participated in and had a wonderful experience) and Science Olympiad. At the high-school level, Honors and AP classes are offered. Some downsides to pull-out classes are more reasons that make them impossible to endeavor, not reasons why they are not an effective teaching choice. Funding is a top reason pull-out classes might be difficult to start and maintained, cited by principals and administrators across the country. Trips have to be paid for, a formally-trained teacher found and salaried, more supplies have to be bought for the many projects to be done, and parents have to be persuaded to participate in the extras of the gifted child’s pull-out education, just to name a few issues. When students have a routine pull-out class, it takes a great deal of coordination for the gifted teacher to coordinate the timing and content of her projects with those of the regular classroom teacher. Delisle & Lewis also notes some tendencies I call lazy and just mean. These authors talk about the rare case where teachers punish pull-out kids by making them make up every single page of work they missed while they were out of the classroom, or by planning field trips or other fun activities during the pull-out class time. Having gifted students leave the room for special instruction may also be a pass for the regular classroom teacher to not challenge the gifted students while they are in the class. The advantages of pull-out classes are myriad. In a pull-out class, children get to work with students who reason as they do and who are all on higher intellectual levels. There is often a creative and original curriculum in these classes so they keep students interested in school and teaches them more about the different ways to learn. Delisle & Lewis point out that in this scenario, there is one central person per school district through whom all students, problems, questions, and curricula flow so it keeps the gifted program organized and with a good gifted teacher, this is the getting the job done efficiently. The Compromise There are many compromises between the two extremes. One is differentiated teaching methods and activities. Delisle & Lewis introduce curriculum compacting which is skipping materials that gifted students already know. Why waste time, right? Independent study inside the classroom is also an option (becoming a “resident expert” is a good example). During research projects, while students are practicing their research strategies, teachers might take this time to expose the gifted students who already know those strategies new technologies and higher-level resources. The aforementioned year-long, multiple-pronged project is a great differentiation experience. A teacher can also provide more complex and in-depth centers using “tiered groups” (Smutny et. al.). While having computer lab time, gifted students can, after mastering regular curriculum, be introduced to advanced computer programs. Also having students think of real-life problems in the world or situations they come in contact with promotes creative thinking on a higher level as well, and can be done while in a regular classroom, after having finished assignments. Teachers and administrators have serious considerations to mull over and plan for. Not meeting the needs of gifted students puts in jeopardy these kids’ learning potential and desire. Gifted students have minds that, if taught how to open them up, produce unbelievable creativity. Each school district must decide which program best meets the needs of their students: inclusion, pull-out classes as the meat of a gifted program, or a combination of the two. One study shows how specific this process is and offers some insight on how to go about making this decision. One key component is to identify goals for gifted students and for the teachers who teach them (Weber, Boswell, & Smith, 2008) because every gifted program must be focused or it will end in chaos and the students will not learn what they need to. r5vqsgaly7qka39k4eh26wagjxpkvnp User talk:Father Goose 3 159650 4668369 4647240 2026-09-03T14:58:16Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668369 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Father Goose!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 15:37, 31 May 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==[[:Digital Television]]== {{mbox|type=notice|msg= [[:Digital Television|This page]] appears to have been created in error (due to a test, or some kind of [[Help:Editing|misplaced edit]]). It might be a [[Help:Stub|stub]], if so, please use [[Talk:Digital Television|the discussion page]] as to explain what this page is about. If it evolves into a [[WB:WIW|legitimate Wikibooks module]], you may remove the tag. If not fixed, explained, or improved, it will automatically be considered a candidate for [[Wikibooks:Deletion policy#Speedy deletions|speedy deletion]] in 7 days. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 15:36, 31 May 2008 (UTC) }} l9tfn8ol6mdp8m7j4ele1at3pngrju6 User talk:AYW~enwikibooks 3 160459 4668263 4650541 2026-09-03T12:57:29Z ShakespeareFan00 46022 4668263 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, AYW!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:22, 6 June 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[Stone Masonry]] == This will likely be deleted shortly, as it seems to be an [[WB:NOTWP|encyclopedic]] article; Wikibooks is for textbooks. If this is intended to be a textbook, you may wish to lay out a plan for the book's scope prior to adding more content so the community can see where you're going with this. &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 21:32, 12 June 2008 (UTC) == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called AYW. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name AYW~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 22:54, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:27, 19 April 2015 (UTC) <!-- SUL post-rename notification --> fguj2nncks8cy6b3h28s8rjlggdkldq User talk:Aggiemd83 3 160536 4668264 4650943 2026-09-03T12:58:50Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668264 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Aggiemd83!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&ndash;&nbsp;[[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 03:29, 8 June 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} e9ti9jear9d3qnxrsveydv91coiefqr User talk:BIS Ondrej 3 162346 4668454 4591269 2026-09-03T19:22:17Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668454 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, BIS Ondrej!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;{{!}}&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 22:04, 25 June 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} l8f5f8s3wu0ljcsiurgxj7yg0h1hfa9 User talk:Hencoly 3 162347 4668230 4591346 2026-09-03T12:06:19Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668230 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hencoly!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;|&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 22:04, 25 June 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} fk3dap9gsz4eeq8e61w7nggbkkw7c8b User talk:Fevhzdsfhsdvfusdf 3 162601 4668371 4586237 2026-09-03T14:59:36Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668371 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Fevhzdsfhsdvfusdf!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:32, 30 June 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} dzadzh6zu0hm6ckkppz3mwerthu3weg User talk:Arianne 3 162859 4668299 4586147 2026-09-03T13:36:22Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668299 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Arianne!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:05, 4 July 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[:Image:Self determination cartoonII.jpg]] is missing [[WB:ICT|license]] or source information== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Self determination cartoonII.jpg]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Self determination cartoonII.jpg]] and other files you uploaded may soon be deleted because there is missing license or source information. The copyright holder is usually the creator, the creator's employer, or the last person who was transferred ownership rights. Please take the time to read [[Wikibooks:Media]] to learn more about what copyright information is required to satisfy our requirements and remember to include this important information for every file that you upload in the future as well. Please edit image descriptions pages directly to add a [[WB:ICT|license template]] and source; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:05, 4 July 2008 (UTC)}} :After looking at how the image is used, I'm going to crop it so only your work shows, <s>then reinstate the license template you had initially used</s>. The MS Word parts of that image are not permitted under our [[WB:MEDIA]] policy. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 11:16, 10 July 2008 (UTC) :Sorry, I think the clipart is copyrighted under the same license as MS Word, making that disallowed as well. Can you create a new version that is entirely your own work? You may wish to ask at [[commons:Commons:Graphic Lab School/Images to improve]] for help with this. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 11:20, 10 July 2008 (UTC) 6gpfyxmdg2o1090p3k28e1w759t2lz9 World War II/D-Day - The Allied Invasion 0 163134 4668498 4630970 2026-09-04T04:31:52Z R. Henrik Nilsson 3395618 larget > largest 4668498 wikitext text/x-wiki {{TOCright}} The invasion of Normandy, codenamed 'Operation Overlord', began on June 6, 1944, with the landing of airborne and amphibious troops in Normandy. The initial landing phase of this operation was the largest amphibious operation in history. The invasion culminated in Operation Cobra on July 24. == Preparation == === Early Planning === Proposals for opening up a 'second front' as early as Autumn 1942 were being considered by the U.S. Joint Chiefs of Staff. An alternate plan, drawn up by then-Brigadier General Dwight D. Eisenhower, proposed a landing before April 1943. While this plan never came to fruition, it brought Eisenhower's organisational and diplomatic skill to the attention of senior political and military leaders in both America and Britain, leading to his rise to Supreme Allied Commander in Europe in less than two years. Planning for an invasion of occupied France began in earnest after the Casablanca and Tehran Conferences in 1943. The costly failure of the Dieppe raid in December the previous year had ruled out a direct assault on a seaport. The need for air support and proximity to the U.K. narrowed the choice of landing sites to the Pas de Calais and Normandy. While attacking Normandy would pose logistical problems, Pas de Calais was heavily defended, and the rivers and canals in the area would prevent a breakout from the beachheads. As a result, Normandy was chosen to be the landing site. In March 1943, Frederick E. Morgan, a British Lieutenant General, was appointed Chief of Staff to the Supreme Allied Commander, or COSSAC. During June and July, the COSSAC staff worked on a plan for a full-scale attack on Western Europe. This plan, named Operation Overlord, was presented to the British Chiefs of Staff Committee in mid-July and to the U.S. Joint Chiefs of Staff later that month. This plan envisaged a landing in Normandy, the use of prefabricated Mulberry harbours, the deployment of American forces on the right and British troops on the left, an airborne operation to secure the flanks and seize strategic points and a diversionary operation in the south of France (Operation Dragoon). The plan stated that the operation was to be launched on May 1, 1944. The COSSAC's plan was accepted at the Quebec Conference in August 1943 but it was several months before a Supreme Allied Commander was appointed. In November, General Eisenhower was appointed Supreme Allied Commander in Europe in preference to U.S. Army Chief of Staff General George C. Marshall. Shortly after, Field Marshal Bernard Montgomery was appointed Commander in Chief of the Ground Forces and Commander of the 21st Army Group. Eisenhower and Montgomery first saw the Overlord plan in December 1943. While the key features of the plan were accepted, Montgomery though that the landing would not succeed unless it was significantly expanded (the original plan called for the landing of three divisions by sea and two brigades by air; it was revised to five divisions by sea and three by air), at the expense of the invasion of southern France. The expansion also delayed the landings by little over a month. In April and May 1944, Field Marshal Montgomery presented his strategy for the invasion of Normandy. It would involve a ninety-day battle in which the Allied forces would pivot on the town of Caen. In the first forty days, a lodgement in Normandy including Caen and Cherbourg would be created. Once Normandy was secured, there would be a breakout towards Brittany and the Atlantic ports on one flank, and a an assault on Paris on the right. === Operation Fortitude === [[File:DummyShermanTank.jpg|thumb|A dummy tank used in Operation Fortitude.]] One of the most crucial elements of the Allied plan for the landings in Normandy was Operation Bodyguard, a deception plan intended to mislead the Germans as to where and when the attack would come. Bodyguard was divided into a number of components, the most important of which was Operation Fortitude, which, in turn, was divided Fortitude North and South. Fortitude North was designed to trick the Germans into thinking that an Allied invasion would come in Scandinavia, thus tying down German units there. A fictional army, the British 4th Army, was created, and headquartered in Edinburgh Castle. Double agents were used to feed information about the arrival of troops in the area to the Germans. Fortitude North also involved simulated radio traffic between nonexistent army units. However, the use of false radio traffic failed to achieve anything as the Germans were not monitoring the radio traffic. Commando attacks, designed to look like preparations for a full-scale invasion, and naval activity, increased in Scandinavia. British diplomats began negotiations with neutral Sweden to obtain concessions that would have been beneficial to an invasion of Norway, such as the right to fly reconnaissance missions in Swedish airspace. A secondary effect of diplomatic pressure on Sweden was that the export of crucial ball bearings to Germany was halted. Fortitude South was intended to convince the Germans that the invasion of France would come at Pas de Calais (this was a logical choice from a geographical standpoint: Pas de Calais is the closest part of France to England), would be executed by the 21st Army Group (which was actually part of the invasion of Normandy) and the American 1st Army Group (which did not exist, and was supposedly under the command of General George S. Patton), and would be preceded by a diversionary attack at Normandy. Fortitude South involved a massive amount of false radio traffic, increased activity around Dover (intended to look like preparations for an invasion), the placement of dummy vehicles and landing craft near Dover and a supposedly pre-invasion bombing campaign against targets near Pas de Calais. The most important part of Fortitude South was the use of double agents loyal to the Allies, including captured German agents, to feed misinformation to the Germans. One particularly important double agent was Juan Pujol Garcia, codenamed Garbo by the British. Operating the Portugal while pretending to be in the U.K., Garbo developed a network of nonexistent agents who were supposedly working for him. Even after the landings in Normandy, the Allies maintained that the main attack would come in Pas de Calais, tying up German troops which could have been used as reinforcements. === Preparations for the Landings === Two armies, the British 2nd Army and American 1st Army, were used in the Normandy landings. The British 6th Airborne Division was to be delivered by parachute and glider to the east of the River Orne to protect the left flank of the attack. The 2nd Army was also responsible for three beaches; from east to west, they were Sword, Juno and Gold. The 2nd Army included some 83 thousand troops, of which approximately a quarter were Canadian. The American 1st Army included the 101st and 82nd Airborne Divisions. The former was to be dropped Vierville-sur-Mer to support the landing at Utah Beach; the latter was initially tasked with dropping in the middle of the Cotentin Peninsula to ease access to the Peninsula and prevent the Germans from reinforcing it, but, due to the presence of German forces in the drop zone, their mission was changed to guarding the right flank of Utah Beach. Units of the 1st Army would land at Omaha Beach and Utah Beach further west. The 1st Army consisted of about 76 thousand men. The naval part of the operation, often regarded as a masterpiece of military planning, was under the command of Royal Navy Admiral Sir Betram Ramsay, who had been in charge of the evacuation of British troops from Dunkirk several years earlier, as well as the naval part of the landings in North Africa and Sicily. Almost seven thousand ships were involved, including 1200 battleships and over 4 thousand transports. The vast majority of these ships were British. Of the nearly 200 thousand naval personnel, about sixty percent were British and half that number American, with the rest coming from other countries. The warships were tasked with guarding the transports against submarines, surface ships or attacking aircraft, as well as supporting the landings with a shore bombardment. === German Preparations === Throughout 1942 and 1943, the Germans had believed that there was very little possibility of a successful Allied invasion of western Europe. While strong fortifications protected the major ports, German preparations for an invasion were otherwise limited. In late 1943, ''Generalfeldmarschall'' Gerd von Rundstedt, commander of ''Oberbefehlshaber West'' or OB West, the German Army Command in the West, seeing the buildup of Allied forces in Britain, requested reinforcements. Fresh troops were duly sent. At around the same time, ''Generalfeldmarschall'' Erwin Rommel, renowned for his successes in North Africa and regarded as one of the best commanders in the ''Wehrmacht'', arrived in northern France to inspect the Atlantic Wall, as the coastal defences of Western Europe were called. After his inspection, Rommel asked Hitler for command of the defenders of northern France, Belgium and the Netherlands. These units were formed into Army Group B and put under Rommel's command. Rommel realised that the Atlantic Wall only protected the major ports. Thus, he had bunkers and pillboxes built, steel obstacles placed the high-water marks at the beaches and low-lying areas flooded. Booby-trapped stakes (known as ''Rommelspargel'' or 'Rommel's asparagus') were set up further inland to deter or disrupt airborne landings. In addition to static fortifications, Rommel wanted to use the Panzer Group West to defend the coast. However, there was a disagreement on the use of mobile forces. While Rommel wanted to put them close to the coast to use them in a counterattack against the invaders while they were vulnerable, ''General'' Leo Geyr von Schweppenburg, the commander of the Panzer Group, wanted to concentrate them in Paris use them in a massive counterattack against the main Allied beachhead. Hitler imposed a compromise: most of the armored and mechanised units would be scattered across France and the Low Countries, while Rommel was given Panzer divisions, of which only one could reach the beaches in one day. === Exercise Tiger === Allied forces rehearsed their roles in the Normandy landings for months prior to the actual invasion. Exercises began in December 1943. Exercise Tiger was a full-scale rehearsal of the attack on Utah Beach that occurred in April 1944. Thirty thousand American troops were to participate in the mock landing at Slapton Sands on the coast of Lyme Bay in southern England. Nine German E-boats sighted the convoy of eight landing ships off the coast and attacked. Two landing ships were set on fire, of which one made it back to shore, and another sank shortly after being torpedoed. The remaining ships and their escorts retaliated, and the E-boat attacks ceased. A further landing ship was damaged by friendly fire. In the attack, 638 servicemen were killed. The surviving landing ships proceeded to land on Slapton Sands. General Eisenhower had ordered that the beach be shelled with live ammunition to simulate combat conditions. There was white tape on the beach which the troops were not supposed to advance beyond until the live shelling had stopped; however, some disregarded these orders and 308 men were killed. Due to embarrassment and fear of leaks, survivors were sworn to secrecy. Ten missing officers had Bigot-level clearance, which mean that they had knowledge of the invasion plans. Fearing that they had been captured alive, the invasion was almost called off. Their bodies were later recovered. The casualty count was not released until after the Normandy landings. === Weather === The window of opportunity for a successful invasion was limited. A full moon was required, both for a spring tide and light for the aircraft pilots. Thus, there were only a few days each month on which an invasion could happen. Eisenhower selected June 5 as the date for the invasion, that is, D-Day. (While the term 'D-Day' is most often associated with the Normandy landings, as a general military term it refers to the day on which an operation is to begin.) However, on the night June 3, the weather was bad. High winds and low cloud made it unsuitable for a landing. It was forecast that the bad weather would continue for three or four days. At a meeting of senior Allied commanders, Eisenhower decided to postpone the invasion until June 6. If weather did not improve somewhat within forty-eight hours, the invasion would have to be postponed for two weeks. Not only would this have decreased the morale of the Allied troops, who were already being loaded onto the ships, the invasion would have run into what Churchill called "the worst Channel storm in forty years". Early in the morning of June 4, it was agreed at another meeting that the postponement would stand. Meanwhile, the Germans, confident that the Allies would not launch an invasion in adverse weather conditions, relaxed. Some troops stood down, and many senior officers left, some of them for wargames. Rommel was attending his wife's birthday. Late on June 4, a meeting of the senior Allied commanders was convened again. Weather forecasts indicated that on June 6, the weather would improve slightly. Air Chief Marshal Trafford Leigh-Mallory, the commander of the air forces, expressed his concern that visibility would be insufficient for the air operations to proceed. However, the other commanders agreed that the operation should go ahead on June 6. At a morning conference the next day, the final decision was made. Overlord was on. === Coordination with the French Resistance === The leaders of the French Resistance, most of whom were in the U.K., organised a massive sabotage campaign to increase the chances of a successful landing. The Resistance would attack railway lines, ambush roads and destroy other buildings of tactical significance, such as telephone exchanges. The BBC regularly broadcasted short messages in French to the Resistance. While these messages were seemingly meaningless, the few significant messages, masked by hundreds of meaningless ones, either instructed the resistance to commit a certain act of sabotage or gave them information. For example "''Bercent mon coeur d'une langueur monotone''" ("soothe my heart with a monotonous languor"), the second line of Paul Verlaine's poem ''Chanson d'Automne'', notified the Resistance that the invasion was imminent. Nazi intelligence had actually discovered the meaning of "''Bercent mon coeur d'une langueur monotone''", but when military commanders in France were notified, the warning was not heeded as a false alarm had been raised in the past. == D-Day == [[File:Lci-convoy.jpg|thumb|Landing craft convoys approaching Normandy.]] === Airborne Operations === The purpose of the airborne operations just prior to the main amphibious landings was to allow the Allied troops to come ashore without being threatened by German counterattacks before they had consolidated their beachheads. The paratroopers were tasked with demolishing bridges that the enemy could use for a counterstroke against the beachheads, and with securing bridges that the Allied forces might have to pass. They would also clear landing zones for the gliders, most of which would come later carry heavy equipment such as jeeps. ==== British Operations ==== There British airborne forces comprised one division, the 6th Airborne, which in turn was composed of the 5th and 3rd Parachute Brigades. D-Day opened with a glider assault by units of the 5th Parachute Brigade against the bridge across the Caen Canal (later renamed the Pegasus Bridge) fifteen minutes after midnight. After briefly exchanging fire with a few sentries, the paratroopers were able to secure the bridge. Shortly after this, another glider assault commenced with the objective of seizing a bridge across the River Orne. Despite a navigational error by a pilot which led to one of the three gliders landing eight miles (13km) east of its intended target, the bridge was secured without further misadventure. These two bridges were the only routes by which the Germans could launch a flank attack at Sword Beach; they were also crucial for the Allied attack on Caen. The heavy cloud cover and poor navigation meant that many of the pathfinders were widely scattered; only one team was dropped correctly. Another was wiped out by RAF Avro Lancasters that had missed their target. Thus, the rest of the brigade was also scattered. The 7th Battalion managed to run into the defenders of the two previously mentioned bridges. After setting up defences, they managed to hold the bridges against a number of German counterattacks. One one occasion, the Germans deployed a tank, which was subsequently destroyed with an anti-tank weapon. On another, the ''Luftwaffe'' attempted to bomb the bridge, but the bomb failed to detonate. The 12th and 13th Battalions were tasked with capturing Las Bas de Ranville and Ranville to secure the bridgehead; despite heavy mortar and artillery fire, they completed their mission. The first unit of the 3rd Parachute Brigade to land was the 9th Battalion. Due to the wide dispersal of the paratroopers, only a quarter gathered at the drop zone when the commander, Lieutenant Colonel Otway, decided to begin the assault on their primary objective, the Merville gun battery. After breaching the defensive perimeter with Bangalore torpedoes, the battalion attacked, but the defenders, who had been alerted to the threat by the explosions, inflicted heavy casualties. Despite a fifty percent casualty rate, they managed to reach the battery and destroy it, although one of the guns was not permanently put out of action. After capturing the village of Le Plein, the battalion was unable to complete any further objectives. The 8th Parachute Battalion was tasked with destroying two bridges at Bures and another at Troarn. With the exception of a brief firefight, their day was anticlimactic, as they found that all three of the bridges that had been tasked with destroying were already demolished. The 1st Canadian Parachute Battalion was tasked with destroying a bridge at Robehomme and another at Varaville. They ran into no resistance on their way to Robehomme, but the sappers tasked with destroying the bridge were not present. They arrived several hours late. Another detachment of the Battalion moved towards Varaville to destroy the bridge and several other objectives, but ran into almost a hundred defenders who had fortified the town. Nevertheless, they managed to persuade the Germans to surrender with concentrated mortar fire. ==== American Operations ==== === The Landings === ==== Naval Bombardment ==== Prior to the beginning of the actual amphibious landings, there was a naval bombardment beginning at 0550, which targeted not only pillboxes, bunkers etc. on the actual beaches, but also targeted coastal batteries and areas further inland to disrupt German troop movements. Some landing craft were equipped with howitzers and rockets, among other artillery, to act as fire support in conjunction with the largest ships. After the event, the German commander Field Marshal von Rundstedt would comment that the battleships were "quickly mobile, constantly available artillery" and that they "play[ed] an important part in the battle within their range" as they prevented any movement of tanks. However, despite their immense firepower, the impact on the beaches was unimpressive; many bunkers still remained. ==== Sword Beach ==== [[File:Landing on Queen Red Beach, Sword Area.jpg|thumb|Commandos landing at Sword Beach]] The easternmost landing beach was Sword Beach, assaulted by units of the British 3rd Division (and units attached to the division) under the command of Major-General Thomas Rennie. Sword Beach stretched five miles (8km) from Ouistreham to Aubin-sur-Mer, although landings would occur on a sector 1.8 miles (3km) long between Hermanville-sur-Mer and Colleville-sur-Orne (later renamed Collevillle-Montgomery) which was divided into Queen White and Queen Red sectors. The 8th Brigade, 1st Battalion of the South Lancashire Regiment and 2nd Battalion of the East Yorkshire Regiment would form the first wave. Three battalions of the 185th Brigade, supported by the Staffordshire Yeomanry, would march on Caen, while the 9th Brigade was tasked with protecting the right flank of the beach and linking up with the 3rd Canadian Infantry Division landing at Juno Beach. Finally, the 1st Special Service Brigade (i.e. commandos), commanded by Brigadier Simon Fraser, Lord Lovat, would capture Ouistreham and link up with the 6th Airborne paratroopers at Bénouville. Forming the first wave were a number of tanks and demolition teams. Some of the tanks ran into the path of the landing craft carrying the demolition teams, but quick manoeuvering prevented a potential disaster, and most of the tanks reached the beach safely. The first tanks and troops ashore were immediately greeted with German fire, which was fortunately rather moderate. Ten minutes later, units of the 1st South Lancashire Regiment and 2nd East Yorkshire Regiment landed, along with a number of French commandos attached to Lord Lovat's brigade. The German defenders were suppressed without much trouble, and by 0800 the British troops had advanced beyond the beaches. In another five hours the commandos had linked up with the paratroopers on the Caen Canal and Orne. However, the troops on Sword were unable to link up with the Canadians on Juno. At 1600, German tank forces and mechanized infantry units from the 21st Panzer Division launched the only German counterattack of any significance on D-Day. After being joined by the 192nd Panzergrenadier Regiment, they managed to reach the beaches between Sword and Juno after four hours, but the division's ninety-eight panzers were stopped by anti-tank weapons, airstrikes and Allied tanks. At the end of the day, the 3rd Division had landed twenty-nine thousand troops in Normandy at a cost of about 630 casualties, but had failed to join up with the Canadians in Juno and to seize the town of Caen: they were stopped three miles short of it by German panzers. Although Sword and Juno would be joined in a few days, the capture of Caen would finally take place some six weeks behind schedule. ==== Juno Beach ==== Juno Beach spanned six miles (10km) from Saint-Aubin-sur-Mer to Courseulles-sur-Mer and was just west of Sword Beach. It was assigned to the 3rd Canadian Infantry Division and attached units, under the command of Major-General Rodney Keller. Juno was divided into two main sectors: Mike in the west and Nan in the east. The 7th Canadian Infantry Brigade would assault Mike with the Royal Winnipeg Rifles, The Canadian Scottish Regiment and the 1st Hussars. They were to then take Courseulles and move inland. Nan was assigned to the Regina Rifle Regiment of 7th Brigade, as well as the North Shore Regiment and the Queen's Own Rifles of Canada of the 8th Canadian Infantry Brigade. The 8th Brigade was to capture Bernières and the western edge of Saint-Aubin. By the end of D-Day, the 3rd Division was supposed to have secured the high ground to the west of Caen, the seaside towns of Courseulles, Bernières, Saint-Aubin and Beny-sur-Mer and the Bayeux–Caen railway line. ==== Omaha Beach ==== [[File:Approaching Omaha.jpg|thumb|Soldiers preparing to land on Omaha beach.]] ==== Utah Beach ==== Behind the advanced assault of airborne soldiers came the primary invasion of three American infantry divisions, the 4th, 29th,and 1st Infantry Divisions on beaches codenamed Utah and Omaha, with two British Divisions and one Canadian on beaches marked Sword, Gold, and Juno. With the placement of infantry on mainland France, the battle of Normandy had begun. A battle that in the end would involve the liberation of France, Belgium, the Netherlands, Italy, Denmark and Norway amongst others and bring the Nazi control of western Europe to an end. {{Status|50%}} {{bookcat}} 9t6x5n7ge7qyphl5xrugj47ynczr93v User talk:Allen majorovic 3 163452 4668306 4586148 2026-09-03T13:43:32Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668306 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Allen majorovic!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:08, 13 July 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} gc2x7qvajhs31obti4stprh1u6ghkhi User talk:Burundi Librestez 3 164657 4668455 4591270 2026-09-03T19:23:47Z ShakespeareFan00 46022 4668455 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Burundi Librestez!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 16:18, 28 July 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} {{mbox|type=serious|msg='''Please help <u>''improve''</u> Wikibooks'''. [[Special:Contributions/{{PAGENAME}}|Recent edits]] you made have not been considered constructive by your fellow contributors. Please use the [[Wikibooks:Sandbox|sandbox]] in the future if you wish to test something out. For a description of the type of content that we do allow, see [[WB:WIW]]. If you have questions about this, or need help, ask at the [[WB:HELP|Reading Room Assistance]] page. Thanks. [[User:Neoptolemus|'''Νεοπτόλεμος''']] ( [[User talk:Neoptolemus|talk]] &#124; [[Special:Emailuser/Neoptolemus|email]] &#124; [[Special:Contributions/Neoptolemus|contribs]] ) 15:23, 28 July 2008 (UTC)}} dequ239y5tbgpuzxwupo9k7cw3hw1q5 User talk:Get-moving 3 165019 4668357 4586247 2026-09-03T14:46:06Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668357 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Get-moving!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 22:53, 31 July 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} :Your rename is done. If you have issues, let me know. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 22:53, 31 July 2008 (UTC) ddgbupa1jzs6fuamxex3cocq0hb4xeb User talk:Fikzter 3 165427 4668372 4586238 2026-09-03T15:00:56Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668372 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Fikzter!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:50, 7 August 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} t5nbz5q13szys0zkplaqjks57nnz4w7 User:Eh9~enwikibooks 2 165611 4668286 2855867 2026-09-03T13:24:13Z ShakespeareFan00 46022 4668286 wikitext text/x-wiki The same <code>user:eh9</code> as on Wikipedia. r0gw953wevjbzcup8ekfuobahat5ewz User talk:Hekademeia 3 165742 4668231 4591347 2026-09-03T12:07:29Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668231 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hekademeia!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Stata== Hi there, welcome to wikibooks. Just a note on your new book Stata. You need to follow the [[WB:NP|naming convention]]. So the subpages need to be called Stata/Creating a DO File for example. Let me know if you have any questions. --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 07:53, 13 August 2008 (UTC) Thanks. You can move your existing pages to those locations by using the move tab at the top of the page. --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 08:27, 13 August 2008 (UTC) mv54z123jn6vcn8cs8sk5fd1p0w3mjv User:Dark Mage/Borders 2 165841 4668394 4414298 2026-09-03T15:21:03Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668394 wikitext text/x-wiki {| cellspacing=1 style="width: 100%; border: solid white 2px; background: Black;{{text default color}};" |- | {| cellspacing=1 style="width: 100%; border: solid white 2px; background: silver;{{text default color}};" |- |<noinclude> |} |}</noinclude> bc7aynsj2mbp7ttjagq1s8oxwt9lbo7 User talk:Dark Mage 3 165848 4668395 4651114 2026-09-03T15:21:28Z ShakespeareFan00 46022 4668395 wikitext text/x-wiki {{/Borders}} {{TalkX}} |} |} <br> <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Dark Mage!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 19:15, 14 August 2008 (UTC) ::Thanks for the welcome :) [[User:Dark Mage|<strong><span style="color: Black;">Dark</span><span style="color: Red;"> Mage</span></strong>]] 20:11, 14 August 2008 (UTC) f1vhvgxczd9x43c00323fq0agvbf4hi User talk:Abhilash.panda 3 167796 4668251 4592561 2026-09-03T12:30:44Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668251 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Abhilash.panda!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==1. Karez Techonology for Drought Disaster Reduction in China‎== Hi there. Just noticed you had created the page [[1. Karez Techonology for Drought Disaster Reduction in China‎]] when I think you meant to create it at [[Indigenous Knowledge for Disaster Risk Reduction/1. Karez Techonology for Drought Disaster Reduction in China‎]]. I have moved that page for you. Please see our naming policy (link above) or leave a question on my talk page if you have any further questions. Thanks. --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 11:30, 1 September 2008 (UTC) ==Reply to Questions== <i>"The book that I am trying to upload has a lot of images. I am not able to upload them. can you tell me how to do it. Please refer to http://en.wikibooks.org/wiki/Indigenous_Knowledge_for_Disaster_Risk_Reduction#Introduction"</i> :See [[Special:Upload]] should tell you everything you need to know. Let me know if you have any questions and I'll see what I can to do help, though I am no expert on uploading images. ''Dear Ad,'' I tried opening this page, but I keep on getting an Error Message. "Permission error From Wikibooks, the open-content textbooks collection. The action you have requested is limited to users in one of the groups: Autoconfirmed users, Administrators. " Can you tell me where I am going wrong? :Hello Abhilash. Sorry I should have remebered. You can't upload images until your account is 4 days old, however you can upload images at commons which can then be referenced from here. More details can be found [[Using_Wikibooks/Introduction/Setting_Up_A_User_Account#Uploading_Images | here]] --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 08:53, 2 September 2008 (UTC) '''Question: I guess its more than 4 days now, can i have the image upload or file upload facility?''' :Yes [[Special:Upload]] should work for you now. Let me know if it still doesn't. --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 07:54, 5 September 2008 (UTC) <i>"How do i get this book, searchable in Wikipedia?"</i> :I'm afraid that wikipedia and wikibooks are separate projects and as such have separate search engines. So the short answer is that you can't. What you can do is add a wikibooks tag on a related article at wikipedia directing users here if they want more in depth information on a subject. --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 12:47, 1 September 2008 (UTC) ==Licensing== Just one more thing. It looks like the book you are uploading has already been written and published elsewhere. Do you have permission to release it here under the [[wikibooks:copyright | GNU Free Documentation Licence]]? --[[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 12:53, 1 September 2008 (UTC) <big>Abhilash</big> This has been produced by us I mean by United Nations ISDR with Kyoto University, in order to make the same accessible to more and more professional we thought of using the Wiki. :Would you please send an email to {{email|permissions-en|wikimedia.org}} so our [[m:OTRS|OTRS]] team can verify and archive this? The email should be sent from an account affiliated with Kyoto University. Thanks for your assistance. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:12, 4 September 2008 (UTC) Answer: What is OTRS team and what do you mean by Archiving, The email can come from United Nations for Kyoto Univ it would take a long time, moreover this project is managed by United Nations, International Strategy for Disaster Reduction. Let me know if this is agreeable. 960inlej8ceqxs6hubn41bszoggw6bo User talk:Jgood031 3 167810 4668538 4591672 2026-09-04T10:04:39Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668538 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jgood031!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 06:18, 11 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hi Jennifer! I enjoyed your intro. And I agree with your education philosophy, it does take more than a degree to be a good teacher. I believe you also have to have the heart for it!! --[[Special:Contributions/71.53.205.92|71.53.205.92]] ([[User talk:71.53.205.92|talk]]) 17:28, 3 September 2008 (UTC)--[[User:Lburn008|Lburn008]] ([[User talk:Lburn008|talk]]) 23:51, 18 September 2008 (UTC) Hey Jennifer, another Jennifer here :) I just wanted to say that I agree with what you said about dedication. Teaching takes a special person, and within that special person is dedication. Great job, and good luck this semester & with the rest of your journey :) [[User:Jennlynn88|Jennlynn88]] ([[User talk:Jennlynn88|talk]]) 18:19, 10 September 2008 (UTC) Hey J, I agree with you that you do have to have your whole heart and soul into teaching. Some teachers who have been in the system for a while don't want to change and are too tired to continue to put their whole heart and soul into it...and they should retire. :) Best of luck to you. [[User:Echer004|Echer004]] ([[User talk:Echer004|talk]]) 22:44, 14 September 2008 (UTC) 59akpmsw6e8ev63uvfb7kqd3s7g6xcj User talk:Aditron 3 168089 4668256 4586070 2026-09-03T12:48:11Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668256 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Aditron!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 12:20, 4 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 2jf0moq4w66cvpfjwezyo1x60hy7ljg User talk:Abake028 3 168315 4668250 4586061 2026-09-03T12:28:44Z ShakespeareFan00 46022 4668250 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Abake028!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:34, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching philosophy== == Author Response == I couldn't agree more with your philosophy! Time is a very valuable tool in education, unfortunately it is also a comodity. I believe that with time, all teachers can realize what works and what doesn't work with all students. Even the ones that have a harder time comprehending. There has to be something that can get through to them. It is also important for the communication between teachers, if a different teacher steps in and takes over, the previous teacher needs to take good notes and be able to update the new teacher on the child's status. As you said about parents giving up, if we don't have any hope for the child, then all is lost. We have to continue trying different things, show the child that we haven't given up on them and keep improving the child's knowledge and understanding. [[User:Mclar005|Mclar005]] ([[User talk:Mclar005|talk]]) 20:19, 12 September 2008 (UTC) Hey! I wish more teachers would see themselves as a driving force in a childs life and not just a person with one purpose. Thats awesome you think positive reinforcement is a crown success when it comes to getting through to children. Your job is hard but rewarding!! :) [[User:Melbell|Melbell]] ([[User talk:Melbell|talk]]) 00:04, 6 September 2008 (UTC) Hey! Since you are the other Amy Baker I thought I would come and read and talk on your page. I agree completely with your teaching philosophy. I think that what you do at the learning center is a wonderful thing to do. I worked over the summer at the elementary school summer school program and in the area teaching kindergarten. Where I live in there are a lot of immigrants and the students came to school hardly knowing any English. I got to work with the students who had severe problems with paying attention one and one and just seeing their progress over the couple of weeks was the most amazing thing in the world to me. If I could do that for the rest of my life I would be so happy. [[User:Abake023|Abake023]] ([[User talk:Abake023|talk]]) 22:45, 12 September 2008 (UTC) ektzptgoks5m5nw2qb72hnddevq2l22 User talk:Aburd004 3 168481 4668252 4586063 2026-09-03T12:31:57Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668252 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Aburd004!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:26, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Userpage== Hello Aaron! I think you did a great job on your author page! Very interesting and informative. I am glad you decided to go into teaching, it sounds like you have a lot to bring to the table. I hope it turns out to be everything you want it to be. That is awesome that you have traveled so many places! As someone who has never been out of the country (yet!), I am very jealous! I am sure that all of your experiences will help you out in the classroom and provide some interesting stories to pass onto the students. I agree with a lot of what you said in your teaching philosophy. I also think it is crucial to engage the students in the topic and get them interested. I know that when I look back on my favorite teachers, they were all very good at getting the students involved in the activity. Good luck in this class! [[User:Awest014|Awest014]] ([[User talk:Awest014|talk]]) 03:17, 7 September 2008 (UTC) [[User:Jwimb003|Jwimb003]] ([[User talk:Jwimb003|talk]]) 00:40, 12 September 2008 (UTC)Hi Aaron, I agree with you whole heartedly about keeping students engaged. I work with Kindergarteners and keeping them engaged is an all day feet as you could imagine. It is worth seeing those faces when they are introduced to something new for the first time. I also love the show Heroes. I can't wait to see it this season. Good luck Hello Aaron- First of all I like your teaching philosophy and it is something that I strongly believe in as well! Students like to feel like they are a part of their school work and like to be able to use their knowledge outside of the classroom. If the students cannot understand why they are learning something, they are going to forget it as soon as class is over. I think having students excited and interested in their work is the best thing that a teacher can. do. My favorite teachers growing up were ones that made me feel like what I was learning went beyond the classroom. The more I think about being in elementary school and how much I loved it, the more excited I get about teaching them one day! They are so much fun! Good Luck and I hope you enjoy teaching one day soon!! [[User:Delsorbo11|Kelli B DelSorbo]] ([[User talk:Delsorbo11|talk]]) 18:31, 12 September 2008 (UTC) == Copyright problems with [[:Image:Scotty n CeCe1.jpg|Image:Scotty n CeCe1.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Scotty n CeCe1.jpg|Image:Scotty n CeCe1.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Scotty n CeCe1.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:15, 9 October 2008 (UTC)}} hdypp3k8wirodznvpywunrf4exs486s User talk:Awade006 3 168610 4668300 4586149 2026-09-03T13:37:45Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668300 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Awade006!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:20, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Hi== Hello Ashley my name is Shannon Albert. I really enjoyed reading about you. I feel like we have a lot in common not so much on the dance thing but my mother also is a cancer survivor and many of my life choices these past few years have revolved around that. I myself got married to my college sweetheart last August the 11th. We just has our one year anniversary and I also have a dog (although mine is a black lab) who is my baby. And I am a huge sports fan but I love soccer more than anything else. I also very much agree with your teaching philosophy. I believe that teachers should be responsible for making sure each and every student is engaged in their learning not just attending class. I know that I find it interesting to try to keep each of my 20-30 kids interested in what we are learning each day. There is this video I saw a while back that talked about having kids do projects that were just like adults would be working on, and this was done to keep their attention. There were things like science projects and even advertising. You sound like you will be one of those teachers that every child will remember their entire lives. Good Luck! [[User:Swrig020|Swrig020]] ([[User talk:Swrig020|talk]]) 23:44, 7 September 2008 (UTC) Hi Ashley, my name is Jennifer. I completely agree with your teaching philosophy in many ways. First of all, "Being able to actually make children think for themselves and shape their own ideas is very important. It is not about reading a book and spitting back the facts, but actually asking why and creating their own perspective"...what an amazing statement! I couldn't agree more. So many teachers (that I know at least) concentrate solely on remembarence of facts and not enough on letting children create their own perspective. I think that's where the "desire to teach" comes into effect. If a teacher has more of a DESIRE to teach, than they will be more likely to actually care about what and how the children think and allow them to come up with their own way of thought processes. I also agree with what you said about making things relatable to a child and how it helps in the remembrance process. THAT IS SO IMPORTANT!!! Looking back on my years spent in school, most of the things that I learned I actually remember because I could relate to them in some way. So, I know that after this class you will be able to have a more fully-developed teaching philosophy to add to your already fantastic one! Good luck :) [[User:Jennlynn88|Jennlynn88]] ([[User talk:Jennlynn88|talk]]) 18:06, 10 September 2008 (UTC) Hi Ashley, My name is Whitney. I really enjoyed reading a little bit about yourself! I believe we share a common interest in dance! I have been dancing all of my life as well! I am sorry to hear about your mom, but i bet it has made you stronger and the bond between your mother and yourself even stronger! Your teaching philosophy is along the same lines as mine. I love your passion to teach, it is something that our public education system needs. Persona relation to you students is key!! Good luck this semester and you future in teaching! [[User:Wkent279|Wkent279]] ([[User talk:Wkent279|talk]]) 21:35, 14 September 2008 (UTC) be9snk51kpcs9mlw2rr4wnbezrfypqr User talk:Jsmit219 3 168636 4668507 4591674 2026-09-04T07:15:41Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668507 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jsmit219!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:iherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:54, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hey Julie! I think it your job sounds so great! Art class for me was always a time to be creative and imaginative, and it was always a great way to relax during a stressful school day. [[User:Mfine003|Mfine003]] ([[User talk:Mfine003|talk]]) 17:37, 13 September 2008 (UTC) t1o8pp2tebakquv9oc5bwsinpj67bb0 User talk:Jennlynn88 3 168716 4668392 1310070 2026-09-03T15:18:26Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668392 wikitext text/x-wiki Hello! I enjoyed reading your about the authour page. You are going to be an excellent elementary school teacher. Your teaching philosophy is very similar to mine. I think it is so important to equip the students in our classrooms for life beyond the classrooms. Good luck to you! Jenneure004[[User:Jenneure004|Jenneure004]] ([[User talk:Jenneure004|talk]]) 19:16, 14 September 2008 (UTC) Hello Jennlynn, You have a wonderful teaching philosophy. I agree wit hyour views on how you think students should learn in your future classroom. Good luck![[User:Jgood031|Jgood031]] ([[User talk:Jgood031|talk]]) 02:28, 9 September 2008 (UTC) Hey Jenny! First of all, I to love dogs! Me and my husband have 3 adopted dogs and they are the best things in the world! You should consider yourself lucky for knowing right now that you want to be an Elementary school teacher. The level you want to teach will come later, don't sweat it! I on the other hand have a 4 year degree from Virginia Tech in Communications and figured out that I wanted to be a teacher a little late but I guess better late than never! I don't know if my teaching philosophy is a philosophy or simply a plan for being an effective teacher. I to look back on my days in elementary school and remember what I loved, what I didn't like, what had the most impact and what didn't really work for me. Although classrooms have come a long way since then, I think many things about teaching and the classroom stay the same over the years. I can't wait to have my own classroom and I hope my students have as much fun as I had when I was there age. Oh yeah and I have got to say this, Go NY GIANTS. I am a huge Giants fan and I saw the Cowboys thing on your page! Haha! [[User:Delsorbo11|Kelli B DelSorbo]] ([[User talk:Delsorbo11|talk]]) 18:38, 12 September 2008 (UTC) ==copyright problems== Hi. The image in your article looks copyrighted... Please make sure you can use this content, and if you can, please edit the copyright material so that the administrators won't get mad at you (and me). Thanks! [[User:PbakerODU|Pete]] ([[User talk:PbakerODU|talk]]) 21:05, 23 September 2008 (UTC) :We're not gonna get "mad" - but we will have to delete stuff <code>:(</code> :[[:Image:Sheissodagoncuteee.JPG]] too. You should probably just check all your uploads. Thanks. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:40, 17 October 2008 (UTC) == Copyright problems with [[:Image:Jeffandjenn.jpg|Image:Jeffandjenn.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Jeffandjenn.jpg|Image:Jeffandjenn.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Jeffandjenn.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:41, 17 October 2008 (UTC)}} ccet2170ogxrdjzxplo9w3xfw19tf67 User talk:Echer004 3 168718 4668556 4586221 2026-09-04T10:55:11Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668556 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Echer004!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:33, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching philosophy== Hello Ebony, I agree with you. The children are our future. If we as future teachers don't help them make the right decisions in their lives then we will suffer for it when we get old. Good luck with everything![[User:Jgood031|Jgood031]] ([[User talk:Jgood031|talk]]) 02:40, 9 September 2008 (UTC) I read over your about author page and I agree with your teaching philosophies! I agree that if your main purpose isn't to help the child and build them up, then you have no business in the classroom. I love the dog names, hilarious. I like sports also, and my favorite football team is the Bengals! Go Ocho-Cinco! [[User:Jcart046|Jcart046]] ([[User talk:Jcart046|talk]]) 18:18, 15 September 2008 (UTC) Hey Ebony, Are you by any chance taking Teaching Elementary Art (MW)? I just saw your comment on my Foundations article about technology and so I thought I'd check out your author page. When I saw your name and that you are teaching and have a graphics degree, I thought you must be the same Ebony. If you are, then there is no reason for me to reply to your comment because you heard it all last Wednesday (LOL). Let me know. This is Beth by the way. [[User:Milr26|Milr26]] ([[User talk:Milr26|talk]]) 21:37, 19 October 2008 (UTC) sccdtv4j7q0par0n4epacgovoh29aif User talk:Aelmo001 3 168747 4668307 4586150 2026-09-03T13:44:48Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668307 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Aelmo001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:33, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching Philosophy== Hey Ariel! I think that is a great philosophy. I think it is something that a lot of people don't relaize. Everyone helps raise that child regardless if it is theirs or not. i think that if students, teachers, family and the school system all had a good relationship with each other the teaching process would go much further and smoother.[[User:Amcel001|Amcel001]] ([[User talk:Amcel001|talk]]) 13:44, 9 September 2008 (UTC) I like your philosophy it does take a village to raise a child. So teachers are also included in the village. I hope everything goes well in your career. [[User:Dfost019|Dfost019]] ([[User talk:Dfost019|talk]]) 15:48, 14 September 2008 (UTC) Hello Ariel, nice to meet you! I know how it is to chase after a little one. Mine is two and trust me it will not get any better for a while. I liked your teaching philosphy and agree that parents must be involved in getting a child ready for school. Mine is only two but I have spent quite a bit of time teaching him his alphabet and numbers. I didn't know how advanced he was until I took him around other children and their parents. [[User:Kdyex001|Kdyex001]] ([[User talk:Kdyex001|talk]]) 21:19, 14 September 2008 (UTC) pz696p8h6jnxxnne2c0sbp0xyjanjac User talk:GlsmithESCC 3 168751 4668358 4586248 2026-09-03T14:47:32Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668358 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, GlsmithESCC!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:08, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Hi HI Glenda! My name is Brittney DeShazo and I am a junior.O.. dont' worry about the whole wikibook stuff, i bet we are all a little nervous! You are a very busy woman! Your page is very informative (interesting stuff:) I really like your ideas on teaching. It is so important to be open minded about teaching. I look ECI 304 last semester ( great class). There is one thing tht really stuck with me, and that was not to be the teacher that teaches the same lesson everyday for 20 years!! As I am sure you know, info and technology are constanly changing as as future teachers its important to provide current info. It seems like you have all your ducks in a row!!! :) Nice to meet you! [[User:Bdesh003|Bdesh003]] ([[User talk:Bdesh003|talk]]) 14:14, 9 September 2008 (UTC) Hi, my name is Robert. I too am worried about all the wikibooks stuff. I have a B.S. in business wishing that I had went into teaching years ago. My wife is very supportive as many weekends are spend doing school work instead of having fun. My full time job does not allow me to take classes during the day so they all have been at night. It really fills up a week fast. We must just keep plugging away. Who knows many we may bump into each other at a school. Nice talking to you. [[User:Rkilb001|Rkilb001]] ([[User talk:Rkilb001|talk]]) 14:23, 12 September 2008 (UTC) Jennifer here, my family is learning how difficult and different having mommy going to school is. My husband has been great so far, but the children are just beginning to understand that I have a lot of homework to do and that means taking time from family events, but hopefully they will realize that I am dedicated to making a better future for my family and other children through teaching.[[User:Jbrow146|Jbrow146]] ([[User talk:Jbrow146|talk]]) 23:46, 13 September 2008 (UTC) mslwt81m9fqbusda2hkqm5ti1vr6prh User talk:Hlame001 3 168767 4668233 4591349 2026-09-03T12:09:41Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668233 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hlame001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:20, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching philosophy== I am glad to see another author on here that acknowledges first in the conversation that every student learns at different paces and in different ways. One of the biggest challenges that we may have, in my opinion, is our limited time with our students conflicting with their individual learning paces. I'd love to know some of your ideas or perhaps information that you have come across that would help us more effectively meet this challenge. [[User:Phura001|Phura001]] ([[User talk:Phura001|talk]]) 18:22, 9 September 2008 (UTC) 1ystyp9ewj0l44mpiqtvj3nmn49xowr User talk:Hgibb005 3 168768 4668232 4591348 2026-09-03T12:08:34Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668232 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hgibb005!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:26, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching philosophy== I enjoyed seeing your comment about spending time with students and finding out more about them. That would definitely go far with a student and help us when we are giving them positive feedback to reinforce and keep them on track toward our teaching goals. Finding time in a limited classroom period to effectively individualize education with each student is going to be a challenge for us. We often have so many students and so little time with them for individual communication in today's school environment. [[User:Phura001|Phura001]] ([[User talk:Phura001|talk]]) 18:29, 9 September 2008 (UTC) The concept of being able to have a one on one time with each student would be idle. [[User:Tfrat001|Tfrat001]] ([[User talk:Tfrat001|talk]]) 01:36, 12 September 2008 (UTC) First I want to say Congratulations on the new marriage! And I am very glad to hear you mother is better now! That is very impressive that you took a few years off of school to take care of her. I agree with your teaching philosophy. It is very important to have an environment where the student feels comfortable. I remember when I had a class where the teacher wasn't very welcoming, I never felt like going to that class and it made me not want to learn the subject. If a student doesn't feel comfortable in a class, they won't ask questions and that means they will most likely get lost or not learn the material. And even though it is very difficult for teachers to get to know each student on an individual basis, I agree that it is very important to have a positive relationship with all students. [[User:Cbrow103|Cbrow103]] ([[User talk:Cbrow103|talk]]) 18:19, 13 September 2008 (UTC) jfmd60dxcoeco6dyzsz9yztoze1y3gx User talk:Egarr008 3 168774 4668555 4586219 2026-09-04T10:53:54Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668555 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Egarr008!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:15, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Hi== i actually have not met someone who wants to be a government teacher. i loved my government teachers and i am sure you will do an amazing job at guiding the children of tomorrow! [[User:Ayure001|Ayure001]] ([[User talk:Ayure001|talk]]) 20:47, 9 September 2008 (UTC) ==(empty heading) == I enjoyed your introduction and gather that you have a keen sense of duty to help subsequent generations of children be obliged to respond to this duty as well. Like you I have strong political opinions and often like to share them with others. In your second paragraph you made a reference to your daughter that I could not understand so maybe you could elaborate on this a bit. Also at the end of paragraph two you ended the sentence with a period and then "even." I not sure but did you mean to include even in the previous sentence with regard to the reference about students? You made some reference to the condition of schools, particularly high schools in the Norfolk area that are noteworthy. With your strong convictions I sense that your regard for these youth in high school is greater than the negative points to which you alluded. Keep up the good work with this class and I look forward to your comments in the reform section. [[User:Efari002|Ed Farinholt (Efari002)]] ([[User talk:Efari002|talk]]) 14:52, 12 September 2008 (UTC) 0h2vd7dklscik7kwxgohdcwos2ee7vg User talk:Adigg008 3 168801 4668259 4586071 2026-09-03T12:52:09Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668259 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Adigg008!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:21, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching philosophy== I liked your philosophy of teaching. I very much agree that everyone deserves an education. I work with special needs children and they especially need not only the education but the socialization. There is no better way for people to learn to live peacefully together then to start as children in school. It makes for a better future for everyone. I especially loved that you said that "teaching is the most important job in the world". That is so true. There would be no future if not for the teachers that give children the building blocks for success. Our society would fall and we would be running around in the dark.[[User:Aelmo001|Aelmo001]] ([[User talk:Aelmo001|talk]]) 22:14, 10 September 2008 (UTC) n3g4oztjbhti10gedt1lu3cl43lelmw User talk:Jlamb029 3 168803 4668508 4591675 2026-09-04T07:16:47Z ShakespeareFan00 46022 4668508 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jlamb029!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:13, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Teaching philosophy== I very much agree with you in that the parents need to be involved in their children's education. Teachers only have the children for a short time each day. What they teach needs to be reinforced at home so that it is not forgotten. I also agree that hands on education is beneficial to children. It catches their attention where a book might not reach them. They see that it is not just words in paper. It can even get them excited about learning.[[User:Aelmo001|Aelmo001]] ([[User talk:Aelmo001|talk]]) 22:21, 10 September 2008 (UTC) You can go ahead and post your content on your wiki article. I removed the other person's content. Let me know if you have any questions. [[User:PbakerODU|Pete]] ([[User talk:PbakerODU|talk]]) 01:40, 25 September 2008 (UTC) iwgz9urbynelamg2mkfqy64i6tmf2wn User talk:Acbaham 3 168813 4668255 4586068 2026-09-03T12:45:57Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668255 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Acbaham!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:50, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} o7293vx4uxnex8jt0iacvwokp3vdbqy User talk:Brobi025 3 168815 4668456 4591271 2026-09-03T19:25:17Z ShakespeareFan00 46022 4668456 wikitext text/x-wiki Hi Brigget, my name is Rachel, I think its nice that you are going to work with young children. I have always been set on secundary ed because my specific interest but lately I have wondered if elementry would be more rewarding. I completely agree with your philosophy. The students are all that matters and their success is all that matters. I personally dispise the SOLs. I think they are a terrible way to assess children. First of all not all people can perform on standarized tests and therefore can not neccissarily detirmine their ability. I also think that they take all the personalization out teaching--students should be able to take something different from every teacher but with them all having to stick to a strict lesson plan based on the SOLs there is little room for personal touch. [[User:Rmorg011|Rmorg011]] ([[User talk:Rmorg011|talk]]) 23:46, 14 September 2008 (UTC) <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Brobi025!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:51, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Brigitt - I agree with utilizing alternative forms of testing for students. Too much focus is often placed on paper test and SOLs. I believe that you can test students' comprehension of material through alternative methods: group activities, classroom discussion, or projects. Students learning styles vary and as educators we should differntiated instruction to accommodate for this. Also, if we are differentiating instruction than it only seems natural that we would use various forms and methods to text student's knowledge and comprehension of material. Alternative forms of testing and differentiated instruction created a more active learning enviroment that promotes learning. As educators, I feel that our goal should be to create an active, engaging, and positive learning enviroment for our students. [[User:Kmora005|Kmora005]] ([[User talk:Kmora005|talk]]) 20:37, 11 September 2008 (UTC) Brigitt - Hey its great to see another Hokie here! Were you in the Corps? Some of my friends and fraternity brothers were also cadets. What year did you graduate? Its good to see other teachers who think testing isn't the end-all-be-all indicator of students success. I totally agree with your statement on multiple avenues of learning. Our school system motto is "Learning for all, whatever it takes." I take that to mean certain students might need non-traditional methods if they're going to get ahead in class. We recently dropped our 'general' and 'academic' levels of science class and now all students take just plain old biology, earth science, etc. So having a wider array of students is making it a challenge but it reinforces what we believe - sometimes you have to teach in non-standard ways if the student is to succeed. Anyway, have a great year. Best of luck! --Alec [[User:Mbaus002|Mbaus002]] ([[User talk:Mbaus002|talk]]) 18:51, 12 September 2008 (UTC) Brigitt, I love your philosophy on teaching. I think that you have a wonderful future in teaching if you stick with your heart. I decided to comment on someones page who was writing on the same topic as me. You sound like a great person, and I am assumming that the military taught you a great deal of patience, since you are thinkin about elementary! I agree with you, that we need to teach the kids anyway that we can. --Jocelyn [[User:Jcart046|Jcart046]] ([[User talk:Jcart046|talk]]) 20:29, 15 September 2008 (UTC) n9ltgr4icp8yn5dptvy54jnjdyiu841 User talk:Bisaa002 3 168818 4668458 4591272 2026-09-03T19:26:50Z ShakespeareFan00 46022 4668458 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Bisaa002!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:54, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Discussion/Comments == Hey! I must first say that it's excellent to see more arts education! I found your teaching philosophy of particular interest. Being one of those students who had some of those addressed in your philosophy, I would have to agree that those are more than pertinent to education and a child's overall health as well. More educators (and general populous) should be made aware of "warning signs" as to better accommodate their students on a whole. Thanks for the perspective! Tenor, [[User:JoshTar|JoshTar]] ([[User talk:JoshTar|talk]]) 23:38, 12 September 2008 (UTC) Hi Brian, It seems as if you are well traveled and well cultured. I am just curious as to why you are referring to yourself in third person. BUt beyond that observation, your ideas on the emotional status of students and recognition that students have other probelms that prevent them from learning rather than their ability is insightful. It is also very true. I have found out that I am not only a teacher but a mother, a mentor, a mediator, and even an inspiration. It can become exhausting, but rewarding at the same time. [[User:Ssmit099|Ssmit099]] ([[User talk:Ssmit099|talk]]) 21:47, 14 September 2008 (UTC)ssmit099 Hi Brian, I, too, am a little curious as to why your information refers to you in the third person. I enjoyed reading your posting especially concerning your military career. Thank you for serving your country and your obvious dedication to upholding its values. I found your teaching philosophy to mirror many of my own ideas on what makes a good teacher. Too many of our children in the school system battle outside influences when they come into the classroom to learn and that is something we all, as teachers, have to recognize. Good luck in your career. [[User:Lpaul006|Lpaul006]] ([[User talk:Lpaul006|talk]]) 03:02, 15 September 2008 (UTC) == Copyright problems with [[:Image:Youngreaders.jpg|Image:Youngreaders.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Youngreaders.jpg|Image:Youngreaders.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Youngreaders.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:57, 9 October 2008 (UTC)}} == [[:Image:Nclb.jpg.gif]] is missing a [[Wikibooks:Media#Non-free use|fair use rationale]]== {{mbox|type=warning|msg= '''Thanks for uploading [[:Image:Nclb.jpg.gif]].''' The [[w:Wikimedia Foundation|Wikimedia Foundation]] is very careful about what Wikibooks includes because of [[w:United States copyright law|copyright law]], and requires that we maintain a strict [[Wikibooks:Copyright|copyright policy]]. [[:Image:Nclb.jpg.gif]] and other files you uploaded may soon be deleted unless a [[Wikibooks:Media#Non-free use|rationale]] for a fair use claim is provided. In order to upload fair use material, specific rationale must be provided as to why fair use media is necessary, and how there are no free alternatives. Images or other media that do not have such rationale will likely be deleted as a copyright violation. If the information of a fair use media component could be duplicated by a free alternative, that media may not be uploaded. Please edit image descriptions pages directly to add {{tlx|fair use rationale}}; there's no need to upload the image again. If you have any questions, feel free to contact me, or [[WB:HELP|ask another Wikibookian]]. See {{UserImages2}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:58, 9 October 2008 (UTC)}} == Copyright problems with [[:Image:Mip07 fig1.jpg|Image:Mip07 fig1.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Mip07 fig1.jpg|Image:Mip07 fig1.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Mip07 fig1.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:22, 9 October 2008 (UTC)}} == Copyright problems with [[:Image:BrianandMegan.jpg|Image:BrianandMegan.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:BrianandMegan.jpg|Image:BrianandMegan.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:BrianandMegan.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:44, 17 October 2008 (UTC)}} == Copyright problems with [[:Image:Logo-bw.jpg|Image:Logo-bw.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Logo-bw.jpg|Image:Logo-bw.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Logo-bw.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:14, 27 October 2008 (UTC)}} == Copyright problems with [[:Image:2mathgr.gif|Image:2mathgr.gif]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:2mathgr.gif|Image:2mathgr.gif]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:2mathgr.gif|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:15, 27 October 2008 (UTC)}} 1g77dwp5l3e5s1szwsigdh10dey26r9 User talk:Jreev006 3 168820 4668541 4591693 2026-09-04T10:09:00Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668541 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jreev006!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:54, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} jko1uykkahb8e5wqpvbtcehy47m0n2b User talk:Bzeig001 3 168823 4668462 4591275 2026-09-03T19:37:52Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668462 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Bzeig001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:55, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Well Bethany, welcome to the area. Hope your enjoying your move so far. And i see that you work for the YMCA; thats pretty cool, i did some comunity service at the mount trashmore location a little while back. I like your personal philosophy, "prepare for the worst and hope for the best", i'd say its a pretty good motto to have. You never know what this worlds going to throw atcha, best to be prepared! I also think you have a pretty good Educational Philosophy as well. Teaching is one of those things that deffinetly can influence the world. Hopefully you use your influence to arouse positive change and growth in your students! Good luck to you!! Gage[[Special:Contributions/70.161.55.43|70.161.55.43]] ([[User talk:70.161.55.43|talk]]) 15:22, 13 September 2008 (UTC)[[User:Gkapp001|Gkapp001]] ([[User talk:Gkapp001|talk]]) 15:27, 13 September 2008 (UTC) Hello Bethany. I was interested in your comment on how you prepare for the worst and hope for the best. I remember I used to think that way but have since revised my point of view. Now I hope for the best and realized that when life gives you lemons you simply make lemonade. Life has a lot to offer and I am sure depending on what type of YMCA you work for you see a wide variety of children and families. As teachers we will have many roles to play, Good luck on your journey and do not forget to stop and smell the roses sometime. [[User:Vguti001|Vguti001]] ([[User talk:Vguti001|talk]]) 22:43, 14 September 2008 (UTC) Hey Bethany. I have heard of Ben Lee, but can't say I'm a fan. Some of my favorite movies are A River Runs Through it, Garden State, Elizabethtown, and Into the Wild; movies that inspire. I love authentic mexican food, but I love taco bell as well. Your philosophy sounds like you'll make a good teacher someday. [[User:Pleex010|Pleex010]] ([[User talk:Pleex010|talk]]) 01:07, 15 September 2008 (UTC) == Copyright problems with [[:Image:Sidebar 2.jpg|Image:Sidebar 2.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Sidebar 2.jpg|Image:Sidebar 2.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Sidebar 2.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:08, 9 October 2008 (UTC)}} == Copyright problems with [[:Image:Me And Ma.jpg|Image:Me And Ma.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Me And Ma.jpg|Image:Me And Ma.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Me And Ma.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:21, 9 October 2008 (UTC)}} ev2jlvokivqju6xd5xw97jkoa61zl94 User talk:Jcart046 3 168831 4668510 4591677 2026-09-04T07:19:44Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668510 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jcart046!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:57, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ilwgltfk1jaja6wq4wxyaxda81ihhat User talk:Gkapp001 3 168834 4668360 4591331 2026-09-03T14:50:01Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668360 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Gkapp001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <tt>Book Title/Chapter Title</tt>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:00, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Astrophysics and theoretical physics! That made my head hurt just typing the words. Seriously, that sounds very fulfilling. I’m actually a fan of astrophysics. As for your teaching/education philosophy, I too felt as if school was a waste of my time growing up. I don’t know if I’d go as far as to say that I hated it, but I did feel as if a lot of it was not practical. I think you have some interesting thoughts about education; particularly the notion that variety and open-mindedness leads to a better acquisition of knowledge. That was my interpretation of your “philosophy of education.” Much success to you in your future endeavors in physics and education.[[User:Abibb001|Abibb001]] ([[User talk:Abibb001|talk]]) 01:54, 15 September 2008 (UTC) misjdy568kt10dujtwmnbyz97qoyk1b 4668384 4668360 2026-09-03T15:14:40Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668384 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Gkapp001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:00, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Astrophysics and theoretical physics! That made my head hurt just typing the words. Seriously, that sounds very fulfilling. I’m actually a fan of astrophysics. As for your teaching/education philosophy, I too felt as if school was a waste of my time growing up. I don’t know if I’d go as far as to say that I hated it, but I did feel as if a lot of it was not practical. I think you have some interesting thoughts about education; particularly the notion that variety and open-mindedness leads to a better acquisition of knowledge. That was my interpretation of your “philosophy of education.” Much success to you in your future endeavors in physics and education.[[User:Abibb001|Abibb001]] ([[User talk:Abibb001|talk]]) 01:54, 15 September 2008 (UTC) n5s969ptt1ekc0zcz8rs5epbca3brcp User talk:Ahine012 3 168835 4668312 4586153 2026-09-03T13:48:41Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668312 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ahine012!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:00, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} I live and was raised in Virignia Beach most of my life also and I am a history and social studies major. It looks like we have similar intrests in history, poilitics and education. I agree with your statement that education is one of the most important parts of an indiviual's life. I also agree that you learn your entire life, and it does not stop once you finish school. Reading is a great tool and as long as you can read and are intrested in reading you will continue to build your level of knowledge long after you are out of school. As a teacher we can also help share our knowledge and passion for learning with our students. [[User:Kcros007|Kcros007]] ([[User talk:Kcros007|talk]]) 19:00, 12 September 2008 (UTC) h607kzxa75ci2bfldiidivv3ctue6o2 User talk:Jlhogan22 3 168836 4668536 4591681 2026-09-04T10:01:59Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668536 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jlhogan22!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <tt>Book Title/Chapter Title</tt>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:00, 10 September 2008 (UTC)</div> |- |align=right colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hey Jenny, I really liked the layout and information in your page. I am also from small town and I totally agree about the nationwide curriculum. I know we have to prepare the students for the "real world", but the majority of the students we teach will never leave these small towns. So I guess it's our job to bring the world to them! Good luck, I'm sure you will be a great teacher! [[User:Ckest001|Ckest001]] ([[User talk:Ckest001|talk]]) 22:58, 14 September 2008 (UTC) You know, I never thought about the small town diverstiy issue like that. We alwasy think about diversity in the big cities, where we HAVE to have tolerance and understanding for the real world, yet, the small cities get voerlooked SO often by big city dwellers. I agree, we gotta bring some diversity into this area, but preparing them for a more real version fo thier life. Some may want to leave, but can't, and then some may wanna stay. Then some may not know yet, and need some help deciding. Thats where a good teacher comes into it, teaching the unknown to students who otherwise wouldn't hear these things. Thats the fun part of teaching, getting the students at a place where they totally depend on you for the information, but are independent in thier curiousity! [[User:Cpayn012|Cpayn012]] ([[User talk:Cpayn012|talk]]) 03:14, 15 September 2008 (UTC) == Copyright problems with [[:Image:Patrick and I at a race.jpg|Image:Patrick and I at a race.jpg]] == {{mbox|type=warning|text= Thank you for uploading [[:Image:Patrick and I at a race.jpg|Image:Patrick and I at a race.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Patrick and I at a race.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:52, 17 October 2008 (UTC)}} == Copyright problems with [[:Image:Patrick and I.jpg|Image:Patrick and I.jpg]] == {{mbox|type=warning|text= Thank you for uploading [[:Image:Patrick and I.jpg|Image:Patrick and I.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Patrick and I.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:52, 17 October 2008 (UTC)}} r4vm6lo3vriu9f6wekwvby6o7yhi2a9 4668548 4668536 2026-09-04T10:40:55Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668548 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jlhogan22!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:00, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hey Jenny, I really liked the layout and information in your page. I am also from small town and I totally agree about the nationwide curriculum. I know we have to prepare the students for the "real world", but the majority of the students we teach will never leave these small towns. So I guess it's our job to bring the world to them! Good luck, I'm sure you will be a great teacher! [[User:Ckest001|Ckest001]] ([[User talk:Ckest001|talk]]) 22:58, 14 September 2008 (UTC) You know, I never thought about the small town diverstiy issue like that. We alwasy think about diversity in the big cities, where we HAVE to have tolerance and understanding for the real world, yet, the small cities get voerlooked SO often by big city dwellers. I agree, we gotta bring some diversity into this area, but preparing them for a more real version fo thier life. Some may want to leave, but can't, and then some may wanna stay. Then some may not know yet, and need some help deciding. Thats where a good teacher comes into it, teaching the unknown to students who otherwise wouldn't hear these things. Thats the fun part of teaching, getting the students at a place where they totally depend on you for the information, but are independent in thier curiousity! [[User:Cpayn012|Cpayn012]] ([[User talk:Cpayn012|talk]]) 03:14, 15 September 2008 (UTC) == Copyright problems with [[:Image:Patrick and I at a race.jpg|Image:Patrick and I at a race.jpg]] == {{mbox|type=warning|text= Thank you for uploading [[:Image:Patrick and I at a race.jpg|Image:Patrick and I at a race.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Patrick and I at a race.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:52, 17 October 2008 (UTC)}} == Copyright problems with [[:Image:Patrick and I.jpg|Image:Patrick and I.jpg]] == {{mbox|type=warning|text= Thank you for uploading [[:Image:Patrick and I.jpg|Image:Patrick and I.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Patrick and I.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:52, 17 October 2008 (UTC)}} 4l9d8bkj36ngl5ydoqthoaxrb3b2xtd User talk:BCollier 3 168841 4668459 4591273 2026-09-03T19:28:03Z ShakespeareFan00 46022 4668459 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, BCollier!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:02, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} I really enjoyed reading your about the author page. It must be fun living in all kind of different places. Coming here from Alaska must have been a big change for you and your family. I'm glad that you like it here in VA. I hope to talk with you again. [[User:Eclau003|Eclau003]] ([[User talk:Eclau003|talk]]) 22:02, 14 September 2008 (UTC) Sorry about the mistake, but I'm glad you caught it though. Thank you too for responding back. [[Special:Contributions/65.254.174.10|65.254.174.10]] ([[User talk:65.254.174.10|talk]]) 21:17, 15 September 2008 (UTC) 3sinimib4xtm3f8srs7epyqubjfd0gd User talk:Apick003 3 168842 4668315 4586158 2026-09-03T13:51:20Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668315 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Apick003!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:02, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 7t7yg4qw1tw8v0g1najb4jppaufz8ec User talk:Fattyskitchen 3 168843 4668373 4586239 2026-09-03T15:02:11Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668373 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Fattyskitchen!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:02, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} fjshe40x4v65polnjhu8ptez3mojipc User talk:Abake023 3 168846 4668254 4586065 2026-09-03T12:34:48Z ShakespeareFan00 46022 4668254 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Abake023!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:06, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hello Amy! I just wanted to say hi since I am the OTHER Amy Baker in the class...ABake028! Who knew I had a name double!! [[User:Abake028|Abake028]] ([[User talk:Abake028|talk]]) 14:45, 12 September 2008 (UTC) mum7pz4guffez8jarb9soxb3c45hb07 User talk:Mfine003 3 168848 4668319 4591644 2026-09-03T13:57:17Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668319 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Mfine003!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:06, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hi Morgan. I really enjoyed reading your philosophy on education. I found certain things you wrote in your philosophy very interesting such as, that you picture your classroom to be an open, engaging atmosphere were the students can freely ask questions and that schools have the responsibility of instilling knowledge and skills fro students to be productive human beings. Along with these I found other insightful statements very useful. I did want to ask about the elementary school that you attended. Where was the school, and the name of the school? Do you know why they did the separation? What were other benefits from the school doing this? If you would like to respond to these questions that would be great, but I understand if you do not have the time. Kimberley[[User:Kridg002|Kridg002]] ([[User talk:Kridg002|talk]]) 21:14, 13 September 2008 (UTC) Wow :) Morgan, I found it interesting to hear first hand your thoughts on all girls/boys schools.I have never attended one, only public and can express that I agree opposite sex can be a distraction within the classroom during early adolesence years. Looking at the issues that students' face today such as pre-martial sex, and early teen pregnancy it has become a moral delimma for school districts nationwide to separarte the sexes. Separation may be a posative solution to keep students mind set focused on their education and school work. There are enough outside preassures and influences in the world today. Maybe it is more of a ethical issue that should be addressed within the family home, than decided by school districts and state regulators? Whatever conflicts that can be resolved without posing a threat to civil liberties as well as establishing better learning environments for students i support. Good luck to you in your endevours... [[User:Rherr008|Rherr008]] ([[User talk:Rherr008|talk]]) 23:13, 14 September 2008 (UTC) Morgan, Your background both in education and in your interests strike me as ideal for your pursuit as a teacher. Like the previous person to respond to this page, I think that separation of sexes in the classroom has many positive attributes. Lessening the natural attractions between boys and girls and the distractions that go along with that can help to focus young people on the task at hand, namely LEARNING. I have fortunately had the experience of both public and private school education and can attest that the private school was bit better in terms of academics. I also like your perspectives on openness to a wide number of interests like the arts and extra curricular activities. It is important that children learn not only the basic studies together but learn the skills of cooperation and teamwork outside of the classroom. I wish the you best in your pursuit to become a teacher![[User:Efari002|Ed Farinholt (efari002)]] ([[User talk:Efari002|talk]]) 13:36, 28 October 2008 (UTC) 5gtb0ksas29gpaph73bc8snoncwuax9 User talk:Bwood028 3 168850 4668552 4591278 2026-09-04T10:49:13Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668552 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Bwood028!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:07, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hello, Katlyn. I loved your About Me article. I give you props for working with the ages of 12-18. I love teaching all ages but elementary is my true passion. I agree with your statement about one teacher making a difference because that is where my passion came from as well. One of my elementary teachers refused to give up on me. She came in early or stayed late to help those who were in need. Your paper was well organized and I liked how you spoke of your recent experiences, motivation, and how you plan to become an effective teacher. I am a believer of no matter what grade level you teach, all teachers can make a difference. Great job and good luck with tutoring the 12-18 year olds. [[User:Ttayl048|Ttayl048]] ([[User talk:Ttayl048|talk]]) 21:36, 14 September 2008 (UTC) pvmnvdleulnf7z7mul5gvgg83fmh8v5 User talk:Ggill005 3 168851 4668359 4591330 2026-09-03T14:48:44Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668359 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ggill005!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:07, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} I don't know where to begin! Your life story was enough to keep me reading and reading and reading! You have the same career goals as I do, and that is also exciting to me. I really like how you separated the words "fun" and "enjoyable." I completely agree that one thing that we, as educators should teach is how students should be able to change their situations if they so desire. Reality is life is definetly not fun at all time, but any situation can be enjoyable if we choose to make it! Lastly, I would much appreciate help in finding out how to make my page as exciting as yours through use of colors! You did a great job on this page! [[User:Tduri002|Tduri002]] ([[User talk:Tduri002|talk]]) 00:25, 12 September 2008 (UTC) First let me say WOW!!! What a wonderful page!!! I have not gotten that sophisticated with wiki yet. I am amazed at all the traveling you have done. I hope to get some more states under my belt before too long. So far, its only been the Atlantic side of the US for me. I agree as well with the fun and enjoyable concept. I have enjoyed looking/reading your page and will see you soon in class. Kristin [[User:Kgors001|Kgors001]] ([[User talk:Kgors001|talk]]) 20:09, 13 September 2008 (UTC)kgors001 Mimi, you have done an excellent job with your page!! Hopefully one day I will be able to say that I have traveled as much as you. I really like how you emphasized that each student is different and learns at a different pace. This is exactly how I feel. When a teacher can connect with his/her students and make learning an enjoyable experience everybody wins. I also agree with you that respect is not automatic, it must be earned. When a teacher can foster an environment with mutual respect and enjoyable learning experiences, that teachers is successful. Heidi [[User:Hlame001|Hlame001]] ([[User talk:Hlame001|talk]]) 13:09, 14 September 2008 (UTC) WOW I've got to say I am a bit jealous you have traveled so many places; I've gotten the opportunity to travel on two occassions & it opened my eyes to many different cultures! I also LOVED your teaching philosophy, I think you have a lot of worldly knowledge & you incorperate it into all aspects of your life. It was wonderful to read about how connected you are to your family they must be a big part of your life, and really supportive of you. :) [[User:Hpoer001|Hpoer001]] ([[User talk:Hpoer001|talk]]) 02:17, 15 September 2008 (UTC) qcolzekr1is1koxv7i9ihkcihokh85g User talk:Amcel001 3 168852 4668313 4586157 2026-09-03T13:50:02Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668313 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Amcel001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:07, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hi Ashley! I'm a huge beach-bum as well! I go to Bethany Beach in Delaware as often as I can. I can't believe summer is already over. :( I really like your educational philosophy. I want my students to be excited to come to my class as well. I think hands-on activities is a great way to do that. I hope you make it up to the beach a couple more weekends![[User:Cirby001|Cirby001]] ([[User talk:Cirby001|talk]]) 02:46, 14 September 2008 (UTC) ktgafktdqyq0ywkfmvu93e3l2zfi7f0 User talk:Jbill007~enwikibooks 3 168868 4668537 4591673 2026-09-04T10:03:29Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668537 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jbill007!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:18, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} I am so stoked to find someone else who is pretty much on the same path as me. History/Social Sciences major and not graduating on time and I came to college, not this one, in 2005. I agree about making history fun. I had a teacher who did and inspired me to follow in his footsteps. Your family history is really interesting. My parents traced ours a few years back, but eeing what you found has inspired me to look into it myself. I figure as a History Major I could do better than the did. [[User:Mhama001|Mhama001]] ([[User talk:Mhama001|talk]]) 01:35, 15 September 2008 (UTC) == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Jbill007. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Jbill007~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:16, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 05:04, 19 April 2015 (UTC) <!-- SUL post-rename notification --> du8wc7sj0w2nkvmxrv3btay7n44i5t5 User talk:Jbrie001 3 168869 4668539 4591682 2026-09-04T10:06:10Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668539 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jbrie001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:19, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} hnrxbqmbc6d8l5sf5sv1nei9t7o8a5g User talk:Jyaeg001 3 168874 4668535 4591680 2026-09-04T09:59:54Z ShakespeareFan00 46022 4668535 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jyaeg001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:26, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Wow! I think that its so cool that you have lived in so many different places. Do you think that the expieriences you have procurred throughout your worldy travels will help you in your teaching? I myself am a huge lover of music what specifically do you like to listen to? [[User:CsCaptor|CsCaptor]] ([[User talk:CsCaptor|talk]]) 17:11, 12 September 2008 (UTC) 3jwfg34zzlj0h4hboqhiufv5ibr1pvg User talk:Bookaneer 3 168879 4668461 4591274 2026-09-03T19:36:03Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668461 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Bookaneer!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:30, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} io0k31pd5ehm2jo9j6cw0enavr79y51 User talk:Aburk018 3 168881 4668253 4586064 2026-09-03T12:33:17Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668253 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Aburk018!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:32, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Hi, you begin your article talking about teacher enthusiasm and interest in the various subjects, which carries over to the kids. In my opinion these traits are essential, as children who are interested in learning make much better students. Recognizing that students learn differently is also important, and trying different teaching styles to try to reach them greatly impoves their chances of learning to the best of their ability, especially with ADD kids. I also believe inclusion is important, however it should be done in such a way that doesn't detract from the rest of the class learning. Having a warm, inviting, comfortable classroom will also enrich the student's learning experience, as they will enjoy being in the class. For the kids who don't have this at home, the classroom becomes a lifeline. Additionally, teaching good citizenship, anti-bullying, and respect reinforces what has hopefully been taught at home, and carries into adulthood. Trying to instill a love of learning is what each teacher should be aiming for. By doing this, one has succeeded mightly. Finally, parental involvement is crucial, especially with children that need a tailored curriculum. This improves the chances of the student doing well in school. I really liked your article. It's obivous you put a HUGE amount of thought into your teaching philsophy. Any student who has you for a teacher will be fortunate![[User:Dcask002|Dcask002]] ([[User talk:Dcask002|talk]]) 17:43, 11 September 2008 (UTC) Amanda, It was great reading a little bit about your past! I think it is such a great thing that you want to work with special education students! I could not agree more that the public education system needs more high quality effective teachers! I can't believe that you can manage school with two small children, you must have your hands full! I agree that a positive attitude is something that makes a effective teacher! I enjoyed reading your philosophy section and I could relate thoroughly! Good Luck with the course and with your future in teaching![[User:Wkent279|Wkent279]] ([[User talk:Wkent279|talk]]) 21:22, 14 September 2008 (UTC) dcbun9y1askrqa8hrcgsedouk14x0as User talk:Awest014 3 168883 4668261 4586079 2026-09-03T12:54:40Z ShakespeareFan00 46022 4668261 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Awest014!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:32, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Heya Amy! Congratulations on your choice in getting into teaching. If you love kids and having a career that rewards more than a paycheck, then you have made the right choice. I am very excited for you and I wish you the best in your career. I believe that future teachers like you and I are a part of a change in how the education system is run. There are so many different tools available for students now and we must adapt to their needs and learning capabilities. Like you said, teachers need to realize that the responsibility of learning is as much if not more on the instructor as on the student. Cheers! [[User:Aburd004|Aburd004]] ([[User talk:Aburd004|talk]]) 00:55, 15 September 2008 (UTC) I thought you had some very good points about being a successful teacher. Goals are definitely very important. You have to set new goals for yourself so that you can constantly excel and become better at teaching. I think a variety of different teaching methods are also a great idea. It's good to expose students to different ways of learning. It keeps the class from being boring. Good luck! [[User:Pmoral1|Pmoral1]] ([[User talk:Pmoral1|talk]]) 03:28, 14 September 2008 (UTC) iiow2sgo761u6fu3do4jhsf2il37n4p User talk:Gyzome 3 168982 4668381 4591336 2026-09-03T15:12:13Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668381 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Gyzome!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 17:40, 10 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} lb51brmyhtohrog72l65hcne6fw0epe User talk:Jdigg009 3 169046 4668511 4591678 2026-09-04T07:20:56Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668511 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jdigg009!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 06:08, 11 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 3x4opxj9i1t5dkfbtyzvnjoaw5yx8ow User talk:Jmill137 3 169047 4668509 4591676 2026-09-04T07:18:34Z ShakespeareFan00 46022 4668509 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jmill137!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 06:09, 11 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} What a lovely family you have. I agree with your philosophy that education begins at home. I too am a Mommy to a three year old boy, Denim. I agree that every child deserves the best education and teachers need to be motivated to get the children excited about learning. [[User:Tkirk006|Tkirk006]] ([[User talk:Tkirk006|talk]]) 00:48, 12 September 2008 (UTC) First of all, just wanted to say, what a lovely picture! Also, congradulations on having the opportunity to come back and finish school. Not a lot of people can do that. I agree with a lot of your educational philosophy. Especially the part about the teacher's job is to motivate the student and get them excited about learning something new. Because I hate when I have to go to a boring teacher's class! [[User:Amill069|Amill069]] ([[User talk:Amill069|talk]]) 03:36, 15 September 2008 (UTC) 8njasmfe9spocpmy9icp3hw0vakbeb1 User talk:Cezex001 3 169052 4668481 4591310 2026-09-03T20:04:17Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668481 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cezex001!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything & it is really easy. Come say [[WB:HELP|hello]] to everyone! </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * You can always get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * If something you wrote was tagged with {{tlx|query}}, and you think this was done in error, just remove it & explain why on the talk page. * If your upload was tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] & source are always required; fair use images require a {{tlx|fair use rationale}}.</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks [[User:AdRiley|AdRiley]] ([[User talk:AdRiley|talk]]) 06:23, 11 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Copyright problems with [[:Image:1671515912 d4f108012b o.jpg|Image:1671515912 d4f108012b o.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:1671515912 d4f108012b o.jpg|Image:1671515912 d4f108012b o.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:1671515912 d4f108012b o.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:47, 17 October 2008 (UTC)}} == Copyright problems with [[:Image:1670650611 abbaba86e7 o.jpg|Image:1670650611 abbaba86e7 o.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:1670650611 abbaba86e7 o.jpg|Image:1670650611 abbaba86e7 o.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:1670650611 abbaba86e7 o.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:47, 17 October 2008 (UTC)}} 5a2z2xpzakttxfbpempr33d4pf3gxvp User talk:AllenDowney 3 170945 4668308 4586151 2026-09-03T13:46:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668308 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, AllenDowney!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 19:47, 24 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} njsefkbuebqf0gt8uftcux4ximy7k9c User talk:Albrito 3 170950 4668309 4586152 2026-09-03T13:47:23Z ShakespeareFan00 46022 4668309 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Albrito!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 21:27, 24 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 06ivkgb7jsyj4srdaum5ti7ky3d8861 User talk:Ikemefuna 3 170951 4668265 4591363 2026-09-03T13:00:35Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668265 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ikemefuna!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 21:30, 24 September 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 9dfcr6c23tatp4jlm9l0ga7oje34mhp User talk:Awesome Princess 3 171449 4668262 4644905 2026-09-03T12:55:52Z ShakespeareFan00 46022 4668262 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Awesome Princess!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 23:36, 1 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Hi == Hi!! I wish to add my welcome to Whiteknight's. :-) Grt to find a fellow C#-lover here. Regards-[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:53, 25 October 2008 (UTC) Awesome Princess - Sorry to write this here, but found no way to contact you. Just wanted to say a big Thank You for the F# tutorial for utter N00b Padawan Runners like myself. The Force is strong with you, Master Awesome Princess. You are my hero. == Great User Page == Simply love it. Philip Singer is a great author who manages to discuss taboo issues with ease (I think it was ''How Are We To Live'' where he discussed the moral rights of healthy cows vs those of severely handicapped humans). I haven't read all of your vegan books but I don't think any of them discuss the economic and ecological impact non-veganism has upon our society and planet. Maybe Philip Singer discusses this. Even if you don't care about animal rights (eg: you like to hunt to deer), the economic and ecological cost of eating meat is simply staggering and reason enough to cause any person to reduce or give up animal products. I was also entertained by your list of programming languages. It made me think that I must be double your age, maybe more. I had my first paying programming job when I was a junior in high school in 1981 (I volunteered at the school computer lab a year before that). I think it would take me days to recall all of the programming languages that I am now or at one time was fluent in. There is simply no chance I could recall half the ones I've dabbled in. Without taking the time to think about it, I would guess that I've been fluent in 35-50 languages. Some of those I've just been fluent enough to write reasonable programs in. Others I've written compilers or debuggers for (I consider that very fluent). Just thought I'd say hi and thanks for the great page. [[User:Neil Smithline|Neil Smithline]] ([[User talk:Neil Smithline|discuss]] • [[Special:Contributions/Neil Smithline|contribs]]) 04:42, 18 January 2012 (UTC) ii91y57qzldyog0hedz78g6bo9hiah0 User talk:Howard Geraint Ricketts 3 171450 4668234 4591350 2026-09-03T12:11:11Z ShakespeareFan00 46022 4668234 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Howard Geraint Ricketts!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 23:37, 1 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} dfhxw9iv7xvhagc3full9aareo9096g User talk:Mvksudheer 3 172629 4668318 4648620 2026-09-03T13:55:48Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668318 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Mvksudheer!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 13:58, 10 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} pwql2eltqabswr6287teo3ytprb946d User talk:Jcwf 3 172737 4668409 4645504 2026-09-03T15:37:36Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668409 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jcwf!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:17, 10 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} Thank you Ravichandar. I am actually not new here. I used the name Iarlagab before and forgot to consolidate that under my universal account :-( [[User:Jcwf|Jcwf]] ([[User talk:Jcwf|talk]]) 16:20, 10 October 2008 (UTC) == Thanks == Dear Jcwf, thanks for your attention. Congratulations on your contribution on the Dutch book, there is a lot of work there. I had not noticed that my discussion was back, I had deleted it (and wrote a softer comment)(and never came back to that book), because that discussion lead to a very long and tiring dispute, that went everywhere (with more deleted discussions), up to the Reading room. Unfortunately the dispute had nothing to do with "learning Dutch", but with "supposed to be wikimanners". I appreciate your tolerance and understanding that my comment is honest, although provocative. In art we are used to hard comments, aren´t we? I even enjoy them. Please tell me, if possible, what part of Netherlands are you from? (I wanted to learn Dutch because I am considering moving there with my wife). What would be a "second best" city to live? Rotterdam or Den Haag? (I say "second best" because amsterdam was my first choice, but it is almost out of our shortlist) (rents too high... stupid reason?)(I know, for some people my second options are their first options). kind regards: ) --[[User:Ricardoramalho|Ricardoramalho]] ([[User talk:Ricardoramalho|talk]]) 12:41, 27 June 2009 (UTC) PS: I promess not to bother you too much :Dear Jcwf! Thanks for the tips on Rotterdam!! (cultural programs are a vital aspect, it is interesting your view that Rdam has more of it than Adam). It has been hard to find positive comments on Rotterdam recently, I have been probably asking the wrong persons about it. :Regarding the pronunciation tool in the Dutch book, it is okay. When I click on the icon it opens the itunes... which is good for ipod transfering. Another approach to pronunciation is the system in www.merriam-webster.com it is faster, but it cannot be stored in Itunes as easily. Feel free to ask me for more help with the Dutch book anytime! The next week up to July 3 I will be quite busy writing works for my masters degree, but after that I will have more time to study the Dutch book. keep in touch! --[[User:Ricardoramalho|Ricardoramalho]] ([[User talk:Ricardoramalho|talk]]) 11:32, 28 June 2009 (UTC) == language books == Hi Jcwf! Thanks for writing to me. I have not been active here lately due to school but I am currently planning on some improvements in the content of Turkish book. I will return to it when I have some free time. But I really like your idea of creating a forum/discussion page for users working on language books. That would really be helpful for all of us. There are many users who are eager to write a book and have many interesting ideas but they hesitate because they feel overwhelmed by the technical side of the work (design, coding and stuff). It would be nice to have a place to exchange information. I support you suggestion with all my heart! [[User:Srhat|Srhat]] ([[User talk:Srhat|discuss]] • [[Special:Contributions/Srhat|contribs]]) 21:33, 17 May 2015 (UTC) == Hi Jcwf == Thanks for writing to me too. I agree, and it looks like we have a few other people who agree too. Any chance we can make a separate discussion page and try to start getting some active participation? [[User:Aphoneyclimber|Aphoneyclimber]] ([[User talk:Aphoneyclimber|discuss]] • [[Special:Contributions/Aphoneyclimber|contribs]]) 09:49, 24 May 2015 (UTC) 64chxvzda8d6oiwvb29isuy0nn2rql8 User talk:Jcarroll 3 173194 4668407 4643962 2026-09-03T15:34:50Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668407 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jcarroll!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 10:31, 11 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 3tt0qq0onlfp4gy5wnpvxzytir58m8m User talk:Dvdrtrgn 3 173324 4668469 4591318 2026-09-03T19:46:02Z ShakespeareFan00 46022 4668469 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Dvdrtrgn!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 20:23, 13 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 4nuic536squhkze57b0155ur975hw23 User talk:God crow 3 173352 4668379 4591333 2026-09-03T15:09:40Z ShakespeareFan00 46022 4668379 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, God crow!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 20:58, 13 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Your userpage== I've deleted your userpage, as it was copied from a non-free source. Please feel free to contribute your own work, or work which is freely-licensed or in the public domain. Thanks, &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 20:58, 13 October 2008 (UTC) i07azkh64mutsa7gkyxudugmyaxsiis User talk:Dubers 13 3 173440 4668463 4591321 2026-09-03T19:40:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668463 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Dubers 13!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 01:33, 15 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==[[Stacy May]]== I've deleted this page because Wikibooks is [[WB:NOTWP|not Wikipedia]], where you can write encyclopedia articles. Wikibooks is Wikibooks, where you can write [[WB:WIW|textbooks]] <code>:)</code> Thanks, &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 01:33, 15 October 2008 (UTC) deaud4gq55au4pkvwf0jzl173kvprw0 User talk:Jikooworld 3 173449 4668533 4591679 2026-09-04T09:55:56Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668533 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jikooworld!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:36, 15 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} {{mbox|type=notice|msg='''I've replied to your post on my talk page'''; please add it to your watchlist so you can easily see when I've replied to your comments. To do this, click the ''watch'' tab at the top of my talk page. Then you can use ''[[Special:Watchlist|my watchlist]]'' to see all changes to your watched pages. This helps keep discussions in one place so they're easy to read and keep track of. Thanks; happy editing! &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:36, 15 October 2008 (UTC)}} rkotcj6xv4x100agdx71mlk5z4mjd03 4668534 4668533 2026-09-04T09:56:18Z ShakespeareFan00 46022 4668534 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jikooworld!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:36, 15 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} {{mbox|type=notice|text='''I've replied to your post on my talk page'''; please add it to your watchlist so you can easily see when I've replied to your comments. To do this, click the ''watch'' tab at the top of my talk page. Then you can use ''[[Special:Watchlist|my watchlist]]'' to see all changes to your watched pages. This helps keep discussions in one place so they're easy to read and keep track of. Thanks; happy editing! &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 03:36, 15 October 2008 (UTC)}} 850n6ej2441l181yad3988gr5vgml5g User talk:Henry8 3 173464 4668340 4649042 2026-09-03T14:25:16Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668340 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Henry8!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 15:53, 15 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} koxarrc5t7t55rcll1iizp0i9dh3olg User talk:Ferraraclaudia 3 173468 4668374 4646152 2026-09-03T15:03:28Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668374 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ferraraclaudia!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:38, 15 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[Kids at 5 stories]] == Hi! How are you? :-) I just stumbled across [[Kids at 5 stories|this page]] that you've created. I just wish to know what you intend to create. Please intimate me in a short while. Thanks-[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:40, 15 October 2008 (UTC) :: Hullo, what is it that you intend to write in that book. Are you really serious?-[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:43, 15 October 2008 (UTC) ir7r4cwxka7q4c7iewqzi5cw9mrz2xa User talk:Danny chan 3 173615 4668468 4591319 2026-09-03T19:44:45Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668468 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Danny chan!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:16, 17 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} j1lyutsmy4b9cdm0evwprghk8ayeuew User talk:GreenOcean~enwikibooks 3 173681 4668378 4642832 2026-09-03T15:08:27Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668378 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, GreenOcean!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 14:17, 18 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called GreenOcean. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name GreenOcean~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:11, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 05:00, 19 April 2015 (UTC) <!-- SUL post-rename notification --> clv6h7fn8scm66b6tc57jmjx721zgmf User talk:GamerAdvent 3 173695 4668380 4591334 2026-09-03T15:10:57Z ShakespeareFan00 46022 4668380 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, GamerAdvent!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 20:40, 18 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} {{mbox|type=warning|msg='''Wikibooks regretfully cannot accept [[Wikibooks:Copyrights|copyrighted]] materials.'''<br/>We [[Wikibooks:Welcome, newcomers|welcome]] and appreciate your contributions. If [[:A-level Mathematics (MEI)/C4]] uses an acceptable copyleft license or the copyright holders are willing to give [[Wikibooks:Boilerplate_request_for_permission|permission]] to use it under an acceptable copyleft license, then we need you to include the licensing information with it. Please read [[Wikibooks:Media]] to learn more about our requirements. After 7 days if this is not addressed appropriately we will have to delete it [[WB:COPYVIO|per policy]]. If you have any questions you can ask me personally or ask in the [[WB:HELP|reading room]]. Thank you; Happy editing! &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 20:42, 18 October 2008 (UTC)}} a7xd6yslz8vvm35lyhrdtz8r8o5j7ss User talk:Milankie 3 173733 4668316 4650585 2026-09-03T13:54:21Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668316 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Milankie!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:34, 19 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 0qm5ppkkcomlmw6bnzvvv6cda4qw2qc User talk:Alenalee 3 173754 4668449 4586257 2026-09-03T19:15:03Z ShakespeareFan00 46022 4668449 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Alenalee!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 23:30, 19 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Copyright problems with [[:Image:Animalcell.png|Image:Animalcell.png]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Animalcell.png|Image:Animalcell.png]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Animalcell.png|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. [[User:Abigor|Abigor]] ([[User talk:Abigor|talk]]) 13:45, 11 January 2009 (UTC)}} 4ojfknli4otleeu1851552sgw608527 User talk:Jphwang 3 173755 4668408 4591684 2026-09-03T15:36:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668408 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jphwang!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 23:30, 19 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 8ioac68lpvfpsu991zfjtcx2dkvxsdk User talk:Coeinck 3 173954 4668474 4647786 2026-09-03T19:55:05Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668474 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Coeinck!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 05:16, 23 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == [[Three Domains of Life]] == Hi!!! Please add references to your work. Besides, this page which you created requires cleanup. I cannot salvage any meaningful content. Please make the stuff more understandable and add your sources. Thanks-[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 05:18, 23 October 2008 (UTC) e4dm30xuz24mit74m2i28snpdcqd9vu User talk:Jmlau 3 173967 4668400 4646701 2026-09-03T15:27:06Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668400 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jmlau!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 05:45, 23 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} lz9s6j7ob5s3i4no2um1ksfsaw3m2hz User talk:HeidiCung 3 173968 4668343 4642906 2026-09-03T14:31:35Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668343 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, HeidiCung!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 05:46, 23 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} b9u4bq8xapphoys0j6knldo7x9i6l8d User talk:HolliMayer 3 174260 4668341 4652342 2026-09-03T14:28:31Z ShakespeareFan00 46022 4668341 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, HolliMayer!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 16:50, 25 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 1bx8faecfj6dxa3hum7kng9j9pp3zj8 User talk:Andrushk 3 174315 4668450 4586258 2026-09-03T19:16:22Z ShakespeareFan00 46022 4668450 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Andrushk!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:07, 27 October 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} nf84imhdlhzc3vac5xcunjrg4764uxg User talk:Jobyjose333 3 175074 4668402 4591694 2026-09-03T15:30:01Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668402 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jobyjose333!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}};padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 23:04, 6 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ==Jesus Youth== I'm afraid Wikibooks is [[WB:SOAP|not for promotion]], and this content seems unsuitable for inclusion here. You may be interested in [[WB:WIW|writing a texbook]] instead. You can find [[Subject:Religion|other religion]] texts to contribute to. If you need help, let me know. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 23:04, 6 November 2008 (UTC) sgx9txk34jjp7nbmhil92nv0rrocxlj User talk:Anders.moe~enwikibooks 3 175076 4668361 4586167 2026-09-03T14:52:04Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668361 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Anders.moe!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 23:06, 6 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Anders.moe. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Anders.moe~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 22:58, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:32, 19 April 2015 (UTC) <!-- SUL post-rename notification --> sb2e5riof8lebc5qoyy9m3tjc40864f User talk:F collie MGCR331 3 175094 4668375 4586241 2026-09-03T15:04:49Z ShakespeareFan00 46022 4668375 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, F collie MGCR331!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 23:51, 6 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} b0srlpz3hso78k61s8s7tbrfr0awwvc User talk:Amali 3 175103 4668446 4586255 2026-09-03T19:10:03Z ShakespeareFan00 46022 4668446 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Amali!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:00, 7 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} eyf2h5ep3c3bzafp86bm92hfr2ebcn5 User talk:Jbeigel 3 175398 4668401 4591691 2026-09-03T15:28:15Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668401 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jbeigel!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 00:32, 11 November 2008 (UTC)</div> |- |style="align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} fn6zqth4273wrafipu14s2qjkwcfl4i User talk:Irynagutman 3 175510 4668266 4591364 2026-09-03T13:02:04Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668266 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Irynagutman!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 02:41, 12 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Copyright problems with [[:Image:DNA1.jpg|Image:DNA1.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:DNA1.jpg|Image:DNA1.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:DNA1.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:58, 26 November 2008 (UTC)}} == Copyright problems with [[:Image:Ribose1.jpg|Image:Ribose1.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Ribose1.jpg|Image:Ribose1.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Ribose1.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:58, 26 November 2008 (UTC)}} == Copyright problems with [[:Image:Sucrose1.jpg|Image:Sucrose1.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Sucrose1.jpg|Image:Sucrose1.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Sucrose1.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:59, 26 November 2008 (UTC)}} == Copyright problems with [[:Image:Maltose1.jpg|Image:Maltose1.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Maltose1.jpg|Image:Maltose1.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Maltose1.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:59, 26 November 2008 (UTC)}} == Copyright problems with [[:Image:Lactose.jpg|Image:Lactose.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Lactose.jpg|Image:Lactose.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Lactose.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:59, 26 November 2008 (UTC)}} == Copyright problems with [[:Image:Sucrose.jpg|Image:Sucrose.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Sucrose.jpg|Image:Sucrose.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Sucrose.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:59, 26 November 2008 (UTC)}} == Copyright problems with [[:Image:Pentose.jpg|Image:Pentose.jpg]] == {{mbox|type=warning|msg= Thank you for uploading [[:Image:Pentose.jpg|Image:Pentose.jpg]]. However it is missing information needed for compliance with [[w:copyright|copyright law]] and Wikibooks' [[WB:MEDIA|media policy]]. This and other files you have uploaded may soon be deleted unless the '''copyright permissions''' and '''source''' can be determined. If you know this information, then please add the correct [[WB:ICT|templates]] to the [[:Image:Image:Pentose.jpg|description page]] with the copyright and source information included; there is no need to upload it again. If you have any questions, feel free to contact me, or ask in the [[WB:HELP|assistance reading room]]. See {{UserImages}} for a complete list of your uploads which may get deleted soon.<br/>Thank you. &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 19:59, 26 November 2008 (UTC)}} 86vvsxzgb3d8sl7d1hlw3q705aghxjz User talk:Addaniel 3 175593 4668260 4644240 2026-09-03T12:53:28Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668260 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Addaniel!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 03:01, 13 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} r1xmkm31l7bc5vgfa0y6s0vcdd7t5qh User talk:Jk33 3 175753 4668412 4643891 2026-09-03T15:40:27Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668412 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jk33!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --[[User:Ravichandar84|<span style="color: maroon; font-size: large; font-family: Monotype Corsiva;">Ravichandar</span>]]<sub>[[User talk:Ravichandar84|<span style="color: aqua; font-family: Monotype Corsiva;">My coffee shop</span>]]</sub> 08:21, 14 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} fu4vqaif9upi3jsgw98aa3b88vllzmj User talk:Jhorn 3 176187 4668540 4591695 2026-09-04T10:07:25Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668540 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jhorn!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]], or insert <nowiki>{{helpme|your reason here}}</nowiki> * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 20:46, 17 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} ja2pvewo1nnn4vyfd8pkeaz1xghovnu User talk:Hvucsd 3 176193 4668342 4591353 2026-09-03T14:30:02Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668342 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Hvucsd!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]], or insert <nowiki>{{helpme|your reason here}}</nowiki> * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 21:08, 17 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Recent actions == I don't think the contributors to the [[Structural Biochemistry]] book pages you blanked appreciate that. You then delinked them from the table of contents. I also assume it was you doing this logged out. I had to ban the IP address for a week for doing that. Removing content wholesale without merging it or justification or a vote for deletion is uncalled for. Please stop. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 23:53, 10 July 2009 (UTC) == I erased question to exams that have little to do with the content of wikibook and hinder students from getting a broad knowledge of the topic. thanks. 8duf001d0dydyl4wnlu83ts9sc961zk User talk:Cjhiggin 3 176194 4668475 4591311 2026-09-03T19:56:12Z ShakespeareFan00 46022 4668475 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Cjhiggin!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]], or insert <nowiki>{{helpme|your reason here}}</nowiki> * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 21:08, 17 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 5vyfia8qzizsjvku3dzjh6qa5f4aert User talk:Jasonanthony 3 176231 4668546 4591690 2026-09-04T10:35:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668546 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jasonanthony!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 04:40, 18 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 3tbtxtq05sqllhspiy6nfoeius3iozq User talk:Jic005 3 176237 4668443 4591696 2026-09-03T19:07:00Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668443 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Jic005!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 05:11, 18 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} 3vmzsl33tsv7u31aqluoag3svt5rdhe User talk:F wang MGCR331 3 176272 4668376 4586242 2026-09-03T15:06:02Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668376 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, F wang MGCR331!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 15:33, 18 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} rvxhp9jt1d56xiytec8dg6dnlam1i9o User talk:Anonymous1 3 176318 4668447 4586256 2026-09-03T19:11:10Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668447 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Anonymous1!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]], or insert <nowiki>{{helpme|your reason here}}</nowiki> * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 04:10, 19 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} kfaf9zm2l5uwgxs3gfe5rr9wzt5e77d User talk:Bb010g 3 176517 4668406 4598149 2026-09-03T15:33:38Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668406 wikitext text/x-wiki == Welcome! == <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, B-a-b!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks --'''Whiteknight'''&nbsp;([[User:Whiteknight|Page]])&nbsp;([[User talk:Whiteknight|Talk]]) 01:04, 22 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} lvzskmvksfxyxcl2e1s73a9dsiytqn1 User talk:Geteiff 3 176735 4668382 4591337 2026-09-03T15:13:36Z ShakespeareFan00 46022 4668382 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Geteiff!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{text default color}};;" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]].</div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 18:19, 22 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} drjhh1wluk9pzvtq38wy1s9xs7zfyra User talk:Ebmonkey2~enwikibooks 3 176744 4668554 4586229 2026-09-04T10:52:18Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668554 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Ebmonkey2!</div> {| cellspacing="0" cellpadding="0" style="margin:0em 0em 1em 0em; width:100%" | style="width:45%; vertical-align:top; border:1px solid #fad67d; background-color:#faf6ed;{{Text default color}};" | <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #fad67d; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/>You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing here and ''[[WB:AGF|assume good faith]]'' for the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[WB:HELP|introduce yourself]] to everyone, and let us know what interests you. </div> <div style="border-bottom:1px solid #fad67d; background-color:#faecc8;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * We tag pages with various [[WB:TM|message templates]], such as {{tlx|query}}, to let editors know what needs to be improved. To learn more about these, ask at [[WB:PROJECTS|the projects reading room]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> | style="padding:0em 0.5em 0em 0.5em;" | | style="width:55%; vertical-align:top; border:1px solid #abd5f5; background-color:#f1f5fc;{{Text default color}};" | <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Please [[:w:Wikipedia:Sign your posts on talk pages|sign your name]] on discussion pages by typing &#126;&#126;&#126;&#126; * If you're coming here from Wikipedia, you should read [[WB:WFW|our primer for Wikipedians]] to get up-to-speed quickly. * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #abd5f5; background-color:#d0e5f5;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #abd5f5; padding:0.4em 1em 0.3em 1em;"> * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]]. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks &nbsp;'''&mdash;&nbsp;[[User:Mike.lifeguard|<b style="color:#309;">Mike.lifeguard</b>]]'''&nbsp;&#124;&nbsp;<sup>[[User talk:Mike.lifeguard|<span style="color:#309;">talk</span>]]</sup> 21:22, 22 November 2008 (UTC)</div> |- |style="text-align:right" colspan=3|<small>(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</small> |} == Your account will be renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> Hello, The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See [[m:Special:MyLanguage/Single User Login finalisation announcement|the announcement]] for more information. Unfortunately, your account clashes with another account also called Ebmonkey2. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Ebmonkey2~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can [[Special:GlobalRenameRequest|pick out a different name]]. Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in. Sorry for the inconvenience. Yours,<br />[[m:User:Keegan (WMF)|Keegan Peterzell]]<br />Community Liaison, Wikimedia Foundation </div> 23:07, 17 March 2015 (UTC) <!-- SUL finalisation notification --> == Renamed == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> This account has been renamed as part of [[m:Special:MyLanguage/Single User Login finalisation announcement|single-user login finalisation]]. If you own this account you can [[{{#special:userlogin}}|log in using your previous username and password]] for more information. If you do not like this account's new name, you can choose your own using this form after logging in: [[{{#special:GlobalRenameRequest}}]]. -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) </div> 04:55, 19 April 2015 (UTC) <!-- SUL post-rename notification --> 4diu1ab16hlyv4hgr5rtykn34xi7lir User talk:Az1568/Archive 2 3 181717 4668249 4651578 2026-09-03T12:27:19Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668249 wikitext text/x-wiki {{User:Az1568/Archive}} == Only cos I'm nosy! == Why were your blocking yourself for fun?!! Cheers (& I'll do some today if other rumblings don't catch me) --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:36, 4 January 2007 (UTC) :Kinda guessed it after trying to catch up on the happenings. I've just been looking over the Panic pages. Other than it is a mess that needs fixing I haven't got a lot further. Good to have some sane folk around tho at this time of the day even if one is an Aussie (just hope he is checking Rc!!). Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:45, 4 January 2007 (UTC) ::Speaking of RC - feel free to give me a view on the admin notice board one - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:47, 4 January 2007 (UTC) :::Apologies - get used to seeing you at "my" time!!--[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:54, 4 January 2007 (UTC) *reset Sharp eyes - cheers and catch you when I wake up!!! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 21:31, 4 January 2007 (UTC) == Ooh goody! == Having just seen your new pages!!! I'll do what I can when I can --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:40, 6 January 2007 (UTC) :OK that makes it easy to keep track of - I'll watch that page as well and mark it when I do some. The effeort is appreciated tho I'm not at all sure how many others know what we are doing <g> --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 11:36, 6 January 2007 (UTC) == Game guides == I'm going to seek some clarification of these today. I noticed yesterday some Final Fantasy have been "transwiki'd according to policy" and some are still being worked on!!! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:02, 7 January 2007 (UTC) == Thanks == Thanks a lot for the kind welcome. Have a nice week and god bless. --[[User:Sir James Paul|Sir James Paul]] 22:43, 7 January 2007 (UTC) == Last two mumfums == FWIW nothing interesting on either - although it surprised me - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:50, 10 January 2007 (UTC) Whilst the vandalism of the last few minutes seems to be related to mumfum we can't be sure. I gave the user a 1 week block in good faith. I don't think you should extend bans given by other admins but I guess Wiki encourages users to be bold so there's not much I can do. [[User:Xania|Xania]] [[Image:Flag_of_Poland_2.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 00:47, 11 January 2007 (UTC) :Don't worry about it. It was late at night so I'd probably had a few too many and that vandal pissed me off as I kept trying to move back the pages to the wrong places. You made the right decision. [[User:Xania|Xania]] [[Image:Flag_of_Poland_2.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 11:42, 11 January 2007 (UTC) :Alfie - nothing to report - regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:12, 11 January 2007 (UTC) == Thanks! == Thanks for the welcome! That was pretty fast. -- [[User:Kesh|Kesh]] 01:40, 11 January 2007 (UTC) == That one! == Used twice now - ip blocked for a month, no legit edits. Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:56, 13 January 2007 (UTC) :Good to have support around, I wasn't sure if you were tidying up or blocking but to take on us two in particular seems a little unwise - peace to the others but we are THE vandal fighters <g>. BTW if you spot one of my "checkuser" type blocks feel free to question - within policy I'll answer what I can (or offline) All the best --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:07, 13 January 2007 (UTC) ::Hum missed picking up that "main page" one - thanks. Got a view on this [http://en.wikibooks.org/wiki/Naijigo]? Google shows up nothing at all? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:19, 13 January 2007 (UTC) :::Thanks - created by three diff IPs tho. I think I'll "watch" it for a bit. Good night I guess! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:36, 13 January 2007 (UTC) == qr-em == Info really - looks like it was not working properly in December maybe. I found some of mine from then that had not showed in any category. As you also use edit summaries I was able to clear those you had placed too (I think). However you might find some around still and I've no idea about those placed by others who don't use summaries. Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:26, 13 January 2007 (UTC) == Template:Editprotected == Are you going to import or copy the page history from Wikipedia for that template? [[User:Iamunknown|User:Iamunknown]] 22:02, 13 January 2007 (UTC) :Yeah I usually add the history on the talk page, thanks for the reminder tho. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 22:05, 13 January 2007 (UTC) On an unrelated note, thanks for the welcomes at meta and the swahili wikipedia. <code>:-D</code> How many recent changes are you watching? [[User:Iamunknown|User:Iamunknown]] 22:25, 13 January 2007 (UTC) :You're welcome for the welcome :P - Well.. I watch about 183 different wikis (see [[m:SWMT/List]]) and I have a bunch of [http://tools.wikimedia.de/~interiot/cgi-bin/queries/SUL?user=Az1568 user accounts] (it might take a long time to load). So you can pretty much find me on any Wikimedia wiki.--[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 22:39, 13 January 2007 (UTC) I've already used {{tl|Editprotected}} <code>:-D</code> [[User:Iamunknown|User:Iamunknown]] 01:27, 14 January 2007 (UTC) :How's this [[User:Az1568/Sandbox]]? --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 01:50, 14 January 2007 (UTC) ::The current location of the "edit" link is somewhat confusing. Why I originally suggested it be moved is because I thought it was referring to editing only the line of "Other projects." Would having it on a new line (aligned to the right side) be appropriate? [[User:Iamunknown|User:Iamunknown]] 01:56, 14 January 2007 (UTC) == Idle curiosity == I meant to ask at the time but care to share what happened when you deleted and selectively restored a while back? OK I could test it myself but I am quite happy to learn from others! Regards --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 16:11, 17 January 2007 (UTC) :So pretty good sub for oversight in a way - just more work I guess. I found a thread on meta that implied oversight was often called for when admins did not selectively restore. To the Admin noticeboard talk at least in due course & I will give it a try I think. Thanks for the info (& I'll change the .js, thanks) --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:10, 18 January 2007 (UTC) == Open proxies == ''expiry time of indefinite nocreate'' Isn't the math problem at sign-up a good enough deterrent for spam and vandal bots? I am worried that by banning account creation we are shutting the third world out. --[[User:Iamunknown|User:Iamunknown]] 04:02, 18 January 2007 (UTC) :Well.. It's an official Wikimedia policy (see [[m:WM:NOP|WM:NOP]]) and the mailing list links at the bottom.) So there I don't think there's much that can be done about it. : ( --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 04:33, 18 January 2007 (UTC) ::Erm, please help me out. I just read the policy, but I didn't see anything about banning account creation. Is that text elsewhere? ::Also, thanks for posting here. (I saw your edit on my talk page and the un-edit.) Just so ya know, the one reason I do it is because I like to have conversations in one place. I know some people don't do that, and others find it annoying, so thanks for doing it and still being nice to me. <code>:-)</code> [[User:Iamunknown|User:Iamunknown]] 04:41, 18 January 2007 (UTC) :::Ummm.. You're right, there is nothing on banning account creation. But for some reason that's how the sysops here have been blocking these IP's! : ( :::(See [http://en.wikibooks.org/w/index.php?title=Special:Ipblocklist&ip=200.210.7.21 Herbythyme] [http://en.wikibooks.org/w/index.php?title=Special:Ipblocklist&ip=210.22.14.61 Derbeth] [http://en.wikibooks.org/w/index.php?title=Special:Ipblocklist&ip=59.0.184.38 SBJohnny] [http://en.wikibooks.org/w/index.php?title=Special:Ipblocklist&ip=203.148.194.131 Kernigh] [http://en.wikibooks.org/w/index.php?title=Special:Ipblocklist&ip=170.155.1.10 Cspurrier]) I'll make sure to not block account creation on the next batch. I'm not sure how we will be able to change that for thousands of the already blocked IP's tho :( --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 05:12, 18 January 2007 (UTC) ::::Could a nifty bot be designed to block the remaining ones and unblock the account creation part of the existing ones? That'd be nifty. <code>:-)</code> ::::Another thing: maybe a few users could be temporarily given sysop status to help with all the blocking business. --[[User:Iamunknown|User:Iamunknown]] 05:55, 18 January 2007 (UTC) == Your thoughts on the staff lounge == If you have time and would like to get involved, please consider adding your thoughts to my [[User:Iamunknown/Staff lounge|staff lounge brainstorming page]]. --[[User:Iamunknown|User:Iamunknown]] 05:13, 18 January 2007 (UTC) == Your last block == OK - the one before last - too early! Poss Wow account with no valid edits at that IP - blocked for a couple of weeks - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:59, 25 January 2007 (UTC) == Cross Wiki info == And don't say IRC (!!). The spam bot page I dealt with today showed up in at least three other wikis at the same time from the same IP. Any co-ordination that you know of (with your cross wiki experience)? Blocks were distinctly variable too - of the ones I notified - from 2 hours to indef!? Cheers (btw answer here will be fine, my talk is "dead" for now, restricting myself to vandals and cleaning...) --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:03, 25 January 2007 (UTC) :Same kind of thing - you nay find the "Norman" vandal elsewhere - they hit Wsource too - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 17:20, 25 January 2007 (UTC) ::I also noticed that spambot on Internet Relay Chat (heh :P) And interwiki co-ordination? see Meta's [[m:SWMT|SWMT]] which handles most of the spam monitoring on the WMF's smaller wikis. : ) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 05:51, 26 January 2007 (UTC) :::Thanks for that - any point in me signing up if I am not on IRC - many of the wikis do not seem to have particularly active admins so nothing is going to get done all that quickly? Equally how come the spam bot wasn't reported on the linked page from [[m:SWMT|SWMT]] (& maybe Norman too - doubt he only tried two wikis)? It would seem that "cross wiki vandal fighting admins" would be a worthwhile idea? Do you know why popus doesn't work properly on Wikiversity BTW --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:49, 26 January 2007 (UTC) :::::1. You can still use the [[m:SWMT#How_to_monitor_a_small_wiki|web based tools]] : ) 2. Actually things do get done somewhat quickly (most of the time) 3. We get lot's and lot's of spam bots/vandals every day! So most really don't care/don't know : ( but the SWMT tends to clean that up quickly. 4. I also noticed that last year... (Seems ok now tho) I think you should try it again. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 06:18, 27 January 2007 (UTC) *reset I'll sign up if you think I can help some - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:04, 27 January 2007 (UTC) == Question == You left a message for me saying that an image I had uploaded might be removed if no copyright information could be found. I'm the creator of the image in question, and I'm happy to put up the proper copyright statements (I'd put it in the public domain), but I'm not sure how. Any informaion you could provide would be greatly appreciated. [[User:Pmo200g|Pmo200g]]<sup> ([[User talk:Pmo200g|Talk]])</sup> == Recentchanges sandbox has been recently changed ;) == Az, did you see my recent change to your [[User:Az1568/Sandbox|recentchanges sandbox]]? When I originally requested a change to the header, that's kind of what I was envisioning. See what you think. --[[User:Iamunknown|Iamunknown]] 20:40, 1 February 2007 (UTC) : I think before (if) the changes are committed, I'd like to convert the wiki->HTML table markup. I could do that later today or tomorrow. --[[User:Iamunknown|Iamunknown]] 20:41, 1 February 2007 (UTC) ::Looks good. : ) When you want it added just leave a note here.--[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 03:03, 3 February 2007 (UTC) == Good ol' Tom == Thanks for the block and revert. We may need to block that IP permanently since the user has been coming back for many months, trying to bother me and several other users here. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 02:52, 3 February 2007 (UTC) == Backlog at Category:NowCommons == Az, thanks so much for clearing out that backlog! I noticed when I tagged one image, and when I refreshed, it was already deleted! I was taken by surprise. :) --[[User:Iamunknown|Iamunknown]] 04:23, 3 February 2007 (UTC) :You're welcome -- I was getting a bit tired of seeing all of those images in the NowCommons category anyways.--[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 04:28, 3 February 2007 (UTC) (More chitchat) I'm sorry you have to deal with all the images I tag. :( I'd deal with them if I could. --[[User:Iamunknown|Iamunknown]] 05:16, 3 February 2007 (UTC) :Heh.. don't worry about it : ) That's why we have admins to delete stuff. BTW do you know anything about the images uploaded by John Burkitt? They were tagged with NLD but have a <nowiki>{{PD}}</nowiki> tag.--[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 05:22, 3 February 2007 (UTC) == Last vandal == Interesting and not sure of the answer but because all contribs were deleted there is no checkuser info. May be worth some admin type thought - may be necessary to "leave" something - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:11, 3 February 2007 (UTC) :It's pretty old though, I wouldn't worry too much about it. (you have new e-mail) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 08:31, 3 February 2007 (UTC) ::Hey - it's early - I didn't look at the date <g> just the block log!! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:40, 3 February 2007 (UTC) :::That's ok -- BTW thanks for the cascading protection info it's pretty useful. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 08:51, 3 February 2007 (UTC) *reset I thought the cascade was interesting (folk seemed a bit dismissive but I guess it would not have been done if it wasn't useful). The idea of protecting non existent pages is good - I'll take a look at some here when I get a chance. Also looking at the bugzilla one and will probably vote (having finally created an account <g>). Away early next week for a few days but will mail you soon - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:05, 3 February 2007 (UTC) == Vandals == Hum - as all contribs deleted no info - I'll take this to others I think - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:48, 4 February 2007 (UTC) :You know that they're all old accounts right?? --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 17:51, 4 February 2007 (UTC) ::Bugger!! It was early again <g> --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 17:57, 4 February 2007 (UTC) == Cross wiki spam issue == Take a look at the reverts I've made here [http://en.wikibooks.org/w/index.php?title=Managing_Groups_and_Teams/Social_Loafing&action=history]. If you see/have seen similar elsewhere is it worth a meta request for blacklisting - as there are only the two here as far as I know it would be premature based on this? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 18:49, 12 February 2007 (UTC) :It would be a bit premature to request blacklisting at this stage, but I'll keep a look out for more of that type of spamming. If it continues to reoccur though, I'd make a blacklisting request. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 07:14, 13 February 2007 (UTC) ::Fine - thought you might see it more. Heads up really. Btw the "Brian" re block I completely agree with! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:59, 13 February 2007 (UTC) *reset Another one - same place same content - IP address this time rather than user - heads up is all - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 14:25, 15 February 2007 (UTC) == Double Check me == Take a look at this edit: [http://en.wikibooks.org/w/index.php?title=Wikibooks_talk:Blocking_Policy&diff=755444&oldid=560680] I blocked this IP for 1 day because of this comment, but if you look at the contrib history, this user actually has had a few productive edits earlier today. I need a second opinion. --[[User:Whiteknight|Whiteknight]] <small>([[User talk:Whiteknight|talk]]) ([[User:Whiteknight/Proposed Books|projects]])</small> 01:23, 15 February 2007 (UTC) :Replied on IRC.--[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 04:45, 15 February 2007 (UTC) == Transwiki == Hey, I saw you were active, so my apologies if you are busy. Anyways, there is a large list forming at [[w:Wikipedia:Articles for deletion/Old/Transwiki|Wikipedia:Articles for deletion/Old/Transwiki]], which require [[m:Help:Transwiki|transwikification]] by a Wikibooks user with a sysop access level. Would it be at all possible for you to try and reduce this backlog in any way, shape or form? We'd much appreciate it over at enwiki, and I'm sure you'd like to have new content :) Cheers, [[User:144.136.170.176|144.136.170.176]] 06:26, 21 February 2007 (UTC) :Sure, I just imported a couple of pages right now and tagged some on enwiki that have already been transwikied. = ) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 07:54, 21 February 2007 (UTC) == Panic == Absolutely not can he be unblocked. If anything this is going against the community consensus of being blocked until he complies. Please re-instate immediately as infinite or tell me to do so and I will. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 03:04, 25 February 2007 (UTC) :Issue resolved on his talk page. Thanks anyway. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 03:29, 25 February 2007 (UTC) ::Ok. Hopefully Cool Cat will be able to sort this mess out. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 03:55, 25 February 2007 (UTC) == Mail == You got it & check the wp page for the IP - worth taking some action?? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 17:02, 2 March 2007 (UTC) :Looks like it belongs to a school district. (Don't they have classwork to do? :P ) Anyways, if you are going to block the IP you should keep it short, since it's a shared address. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 08:20, 3 March 2007 (UTC) ::Sure - heads up as much as anything - longish blocks on wp tho & back btw! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:23, 3 March 2007 (UTC) == Time to delete orfu images? == Az, do you think it's okay if I start deleting unused and orphaned fair use images? I just noticed that there are at least a few. --[[User:Iamunknown|Iamunknown]] 20:58, 25 March 2007 (UTC) : I think I'm going to start. All these new admin tools are interesting, but I'm kind of afraid to use them. --[[User:Iamunknown|Iamunknown]] 21:16, 25 March 2007 (UTC) ::Sure, there's a bit of a backlog there. And don't worry, you'll get used to the new tools eventually. =) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 00:46, 26 March 2007 (UTC) == Can you do something about ... == Oi, can you do something about this [[User_talk:Iamunknown#stage_short]] and if resolved post to Iamunknown it is solved ? txs. --[[User:Panic2k4|Panic]] 00:03, 28 March 2007 (UTC) :Hmm... looks like Iamunknown fixed it already. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 03:01, 28 March 2007 (UTC) ::Txs the same, sorry I didn't remove the request. --[[User:Panic2k4|Panic]] 03:07, 28 March 2007 (UTC) == Talk sandbox! == What's with Uncle G's bot and the way it "resets" the talk sandbox? (or is it just me - but I see you've been there too). Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:24, 12 April 2007 (UTC) :It's been adding the main sandbox template, which looks really messed up there.-- looks like it dosen't know about the special one for the talk page... yet. :/ --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 07:33, 12 April 2007 (UTC) == Snootboot.jpg == Please let me know what I should be doing with my uploaded images. You have them identified as copyright infringements. Perhaps I have identified them under the wrong catagory. Practically all the pics I have on here I have taken myself as you can see from the camera data attached to the pic. Thanks --[[User:Artyboats|Rob]] 12:36, 15 April 2007 (UTC) == Problem fixed thanks..but I have another question == I noticed that the catagory listing that my module falls under is '''Motorbikes''' Probably the more appropriate term would be '''Motorcycles''' I'm not sure how important it is or what the implications might be. Also I have added a headline Motorcycles to the bookshelf at http://en.wikibooks.org/wiki/Wikibooks:Technology_bookshelf I'm not sure how to add the link to my book there. Should the catagory page and the bookshelf not be linked? thanks --[[User:Artyboats|Rob]] 02:07, 16 April 2007 (UTC) == .js == Interesting - mind if I play (away for weekend tho) cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:47, 27 April 2007 (UTC) :Nope = ) . BTW you have mail. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 04:28, 28 April 2007 (UTC) == Ping == !! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:00, 30 April 2007 (UTC) :OK - mail then --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:15, 30 April 2007 (UTC) == Checkuser Decline == I saw your decline on IRC before I went do bed. The WMF gives the possibility that exceptions to the new resolution can be made, and considering your performance as a vandal fighter, I think it's worth a shot to ask them if we can lift the age restriction for you. We have a number of other checkusers here who can "watch" you (I say that only as reassurance to the WMF, you certainly don't need to be watched), and there are several people here who will vouch for your quality as a vandal fighter. Also, you have a little myopia, that is that you tend to focus only on vandals, so i dont think you pose a risk for the privacy policy. Let me talk to bastique about it, but if the WMF is willing to give an exception (which i certainly can't guarantee) would you consider un-declining the nomination? --[[User:Whiteknight|Whiteknight]] ([[User talk:Whiteknight|talk]]) 02:56, 1 May 2007 (UTC) :If they decide to make an exception, yes. And if not, most likely I'll re-run when I do meet that limit. = ) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 03:10, 1 May 2007 (UTC) ::Fair enough. If i knew when you were going to be eligible, i would be the first to nominate you. --[[User:Whiteknight|Whiteknight]] ([[User talk:Whiteknight|talk]]) 12:58, 1 May 2007 (UTC) == Suggestion == You may want to add [[User talk:John Guy Robinson|this page]] to [[WB:SALT|protected titles]], just like you did with [[User talk:John George Robinson|these]] [[User talk:John Matthew Robinson|pages]]. [[User:128.2.152.133|128.2.152.133]] 01:58, 3 May 2007 (UTC) == FWIW == Your "new friend" - same as your old friend Ninten* - good catch - three month block on IP now --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 09:36, 6 May 2007 (UTC) == Usernameblacklist == I don't understand the point in most of your changes. (?i:) makes everything case insensitive, making (m|M), (O|o), etc. pointless. \b is a word boundary which, also allows for the exclusion of anything being there, making the purpose of something like (\bo|O) only include a word boundary for lowercase o, but not uppercase O. I'm not sure if thats your intention. The only thing that makes sense to me, would be the inclusion of "\b(?i:moderator)". Anyways thought I would ask why you did those specific changes, rather then just changing it myself, in case there is more to it then what I see. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 01:35, 16 May 2007 (UTC) :Oops! I was adding some new ones from WP, and I didn't intend to change anything that was already there. Should have checked it before saving. :P Fixed now - Thanks.--[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 03:39, 16 May 2007 (UTC) == Help! == The "create account" option that I need for [http://meta.wikimedia.org/wiki/User_talk:Pathoschild#Cross_wiki_vandalism_issues this] isn't there?? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:17, 22 May 2007 (UTC) :Account created -- check your e-mail for details. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 23:14, 22 May 2007 (UTC) == Hum == Cross wiki vandalism - two talk page messages to your suggestions, de nada! Thoughts welcome, tho I confess it makes me angry!? Btw guess you noticed Johnny the vandal (User:Hephaestos) at wikisource (blocked by Shanel) - any other signs? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:23, 25 May 2007 (UTC) :Hmm.. =( Yep, noticed Johnny and asked Shanel to block him, seems pretty quiet for now. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 08:18, 27 May 2007 (UTC) == IP block == I assume you found something about it! Blocked meta & Commons too! Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:50, 4 June 2007 (UTC) :It looks like the same random number bot from 2006. They usually use the same proxies that the spambots use, so it's best to block them on sight. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 01:30, 6 June 2007 (UTC) == IP block == More looked worthwhile I [http://www.robtex.com/rbl/218.242.245.230.html think] - hope you don't mind & that all is good - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 13:37, 2 August 2007 (UTC) :Thanks, sounds good based on the rbl. = ) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 03:34, 3 August 2007 (UTC) ::Just found [http://www.projecthoneypot.org/i_6d44cf27d5e1c44920453fb28be24226 this] - interesting? --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:26, 7 August 2007 (UTC) :::Wow, nice find. I'm sure we can use that to get a better idea of how much spam/abuse is coming from an IP. - Could also give us a better idea on how long to block based on the IP's activity. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 07:33, 7 August 2007 (UTC) == The Religion of God == I am a new comer on Wikibooks, could you kindly guide me that how can I present above named book of His Holiness Sayyedna Riaz Ahmed Gohar Shahi the Founder of International Spiritual Movement Anjuman Serfaroshan-e-Islam. Let me introduce myself, I am press & information secretary of International Spiritual Movement Anjuman Serfaroshan-e-Islam and I have full rights to present the above named book of His Holiness Gohar Shahi. --[[User:Iamsaa|Iamsaa]] 11:05, 7 August 2007 (UTC) ==Romeo and Juliet== Thanks for trying to import the page. I've created [[William Shakespeare's Works/Tragedies/Romeoand Juliet/Themes]] as a straight copy-paste, and left a note on the talk page. I intend to do this with the "Other approaches" section of the wikipedia article too. Is the note on the Themes talk page sufficient? -[[User:Malkinann|Malkinann]] 07:59, 16 August 2007 (UTC) :Usually, we try to avoid copy and pastes, but if the material is really needed, a link to or a copy of the Wikipedia page's history on the talk page is fine. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 08:23, 16 August 2007 (UTC) ::So, http://en.wikipedia.org/w/index.php?title=Romeo_and_Juliet&action=history ? Also, while I've got your ear, is it possible for the book to be moved to its proper title of [[William Shakespeare's Works/Tragedies/Romeo and Juliet/]] (note space between "Romeo" and "and")? The proper title has been protected for some reason. -[[User:Malkinann|Malkinann]] 08:42, 16 August 2007 (UTC) == Thank you == For renaming my talk page. :) [[User:LaraLove|<span style="color: #6A5ACD;">Lara</span>]][[User_talk:LaraLove|<span style="color: #FF1493;">♥Love</span>]] 03:26, 24 August 2007 (UTC) == IP block == I blocked IP 24.199.96.137 for 2h due to the bad language and changed your message on the talk page. Maybe I'm just grumpy. Thought you should know. ''' &ndash; [[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]''' | <sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 04:17, 12 September 2007 (UTC) :Heh, np. = ) I blocked a few more than usual tonight too... (also protected our friends page [[User talk:84.45.219.185]]). --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 05:19, 12 September 2007 (UTC) Guessing - needs to be there until the bot next runs - but let me know if there is a problem & I'll try Bryan on it? Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:05, 15 September 2007 (UTC) :Hey Herby, just testing my new IRC unblock bot [irc://freenode/cvn-wb-en #cvn-wb-en]<code><unblock-enwb> 1 person requesting an unblock: [[b:en:User talk:Az1568]] (waiting for 0 hours, 24 minutes and 58 seconds)</code> ;) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 07:08, 15 September 2007 (UTC) ::Thought it might be [[User:Herbythyme/Categories|this]], all good I hope, cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:15, 15 September 2007 (UTC) == Toolserveraccount == Hello Az1568,<br/> please send your real-name, your wikiname, your prefered login-name and the public part of your ssh-key to [[image:zedler-admins.png]]. We plan to create your account soon then. --[[w:de:User:DaB.|DaB.]] 15:29, 27 September 2007 (UTC) :Done. --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 22:19, 27 September 2007 (UTC) == Sora blocked... == I'm going to suggest that the block on Sora be lengthened or perhaps made permanent. While you were blocking that account, whoever it was came back and re-deleted DH chapter 1, which you had restored. I have restored it again, so it's a non-issue now, but... that was deliberate vandalism, and deserving of a total block IMHO. [[User:Chazz|Chazz]] <small>([[User talk:Chazz|talk]])</small> 16:13, 6 October 2007 (UTC) :Done. :) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 16:17, 6 October 2007 (UTC) == Blocking guideline == [[Wikibooks_talk:Blocking_guideline#Relatively_minor_changes|Check it]]. Thanks. -[[User:Withinfocus|<span style="color: #000000;">'''within'''</span>]][[User talk:Withinfocus|<span style="color: #7A7A7A;">'''focus'''</span>]] 01:29, 13 October 2007 (UTC) == [[User:Az1568/Proxy]] == Is this something that should be done? If so, I'd like to help, but please tell me there's a tool to speed the process along...? '''&ndash; [[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]''' &#124; <sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 00:27, 18 October 2007 (UTC) :That list might be outdated - i'll try to get a new one soon. And yeah we do have a tool for it. (a combo of FF and some plugins) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 18:59, 20 October 2007 (UTC) ::I've already started in on list 8. It's slow going; If you'll share this "combo of FF and some plugins" I'm happy to keep at it. FYI, I changed {{tlx|Proxyip}} to make it a 1 year block since the lists are a tad stale. '''&ndash; [[User:Mike.lifeguard|<span style="color: Indigo;">Mike.lifeguard</span>]]''' &#124; <sup>[[User talk:Mike.lifeguard|<span style="color: Indigo;">talk</span>]]</sup> 19:08, 20 October 2007 (UTC) ::Please when you update the list, have it also account for all current blocks we already have in place for open proxies or already been blocked indefinitely. It would also be nice if such a list would include unblocks from discovering an IP address is no longer an open proxy. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 19:31, 20 October 2007 (UTC) :::This is why I prefer "fresh" open proxies. The unblock requests on Meta go back to last year & I don't think anyone deals with them. Finding out it is (probably) an open proxy is quite easy, proving it isn't is not --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 10:11, 21 October 2007 (UTC) == Hey == All ok? Was thinking of you - warm near you at all? Good to see you --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 07:46, 26 October 2007 (UTC) :Yeah, haven't had much time for wiki work - I've been busy with school lately. But you can usually catch me on IRC or IM :) And yup it's getting warmer here (tho it really should be getting colder round this time of year) been causing allot of problems for Southern CA where they're battling a huge fire now. ([[n:1,000,000 flee homes in California due to wildfires; over 500,000 ordered to evacuate|Wikinews link]]) Good to hear from you again tho - hopefully I'll be back in full, in a month or two. ;) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 07:59, 26 October 2007 (UTC) ::Yeah it was the fires I was on about. Computer issues are keeping me off IRC (& v busy) for now. There are "issues" with the new server.....! Catch you before Christmas!! --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:10, 26 October 2007 (UTC) == :) == And thanks cross wiki - correct IP btw! (tho check commons log for another) Cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:36, 13 November 2007 (UTC) :Will do. lol, I should know most of his info by now [[OldWikisource:Special:Contributions/Az1568]]. :) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 08:40, 13 November 2007 (UTC) ::Caught before they started on en wq. Hope all good, I'll be in touch - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 08:49, 13 November 2007 (UTC) == Nudge! == [[Wikibooks:Counter-Vandalism_Unit#Other_Resources|CVn]] links need updating? Hope 2008 is good - cheers --[[User:Herbythyme|<span style="color: green;">Herby</span>]] <b><sup><small><span style="color:#90F">[[User talk:Herbythyme|talk thyme]]</span></small></sup></b> 12:45, 31 December 2007 (UTC) :Wow, that's a bit old (adds to watchlist). --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 05:07, 2 January 2008 (UTC) == Elections in progress == Hi Az1568, how are you? I'm Sarvaturi, I work on the Sicilian Wikipedia (scn.wikipedia, where I'm a bureaucrat and an administrator) and I work on the Sicilian Wiktionary (scn.wiktionary, where I'm a bureaucrat and an administrator) and please I would need your help: on the Corsican wiktionary (where you contributed various times) there are some elections in progress to elect a second administrator (me), and please I would like you to vote (for or against): http://co.wiktionary.org/wiki/Wikizziunariu:Amministratori As information: The Italian administrator [http://co.wikipedia.org/wiki/User_talk:Ale_Mister Ale Mister] who works in the Corsican wikipedia has voted "yes" for me. Other information: I have more than 112 edits in this little Corsican wiktionary. Thanks in advance Best regards [http://en.wikipedia.org/wiki/User:Sarvaturi Sarvaturi] :-) ==hehe== '''good site dude''' ..--[[User:Cometstyles|Cometstyles]] ([[User talk:Cometstyles|talk]]) 01:41, 20 May 2008 (UTC) :LOL ;) --[[User:Az1568|Az1568]]<sup> ([[User talk:Az1568|Talk]])</sup> 01:43, 20 May 2008 (UTC) 1uoutnm0cpjlckh55u10onkucsebodx User:Dr. Shaggeman 2 182066 4668282 1385210 2026-09-03T13:22:03Z ShakespeareFan00 46022 4668282 wikitext text/x-wiki {| style="background-color:transparent; color:inherit;" | Name: || Sven Hagge |- | Nick: || Dr. Shaggeman |- | Signature: || ShaggeDoc |- | [[:wikipedia:en:IRC|IRC]]: || DocShaggeman (@wikipedia/DrShaggeman) |- | E-Mail: || [mailto:shagge@freenet.de shagge@freenet.de] |- | [[:wikipedia:en:GNU Privacy Guard|GPG]]-Fingerprint: || <code>39E1 6D51 9246 B518 69BD A502 67D8 9FE4 8AAB 4B0E</code> |- | GPG-KeyID: || <code>0x8AAB4B0E</code> |- | Accounts: || '''[[:wikipedia:de:User:Dr. Shaggeman|de.WP]]''' <small>(sysop)</small> - [[:en:User:Dr. Shaggeman|en.WP]] - [[:commons:User:Dr. Shaggeman|commons]] - [[:meta:User:Dr. Shaggeman|meta]] (for further accounts see [[:meta:User:Dr. Shaggeman/Accounts|list of accounts on Meta]]) |- | Languages: || de - nds-3 - en-4 - fr-1 |- | [[:meta:OTRS|OTRS]]-Queues: || '''info-de''' - permissions-de |} s65kwv0rwh4mnfjvodqwqjvdne0xegn User:Georgeryp 2 189491 4668295 1443919 2026-09-03T13:31:55Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668295 wikitext text/x-wiki ==TODO== # Source tag issue: <code><nowiki><source lang="SQL">SELECT order FROM a_table ORDER BY status</source></nowiki></code> capitalizes SQL keywords like ORDER, STATUS, etc without regard to context: :<source lang="SQL">SELECT order FROM a_table ORDER BY status</source> :see also [[Oracle Programming/10g Advanced SQL]] duhkhfj770zp0y5njlrct1u852nhr25 User talk:Csutherland 3 192177 4668404 4626299 2026-09-03T15:31:21Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668404 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Csutherland!</div> <div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/> You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]]. If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed. </div> <div style="border-bottom:1px solid #15304f; background-color:#2a62a1; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues. * Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed. * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> </div> <div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving. * Sign your name on [[Help:Talk page|discussion pages]] by typing &#126;&#126;&#126;&#126; * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]], or ask the administrator who deleted the page. </div> <div style="background-color:#transparent;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, [[User:NipplesMeCool|<span style="color:#000090">Mr. '''NMC'''</span>]] ([[User talk:NipplesMeCool|<span style="color:#000090">talk</span>]]) 21:50, 23 April 2009 (UTC)</div> </div> <div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div> PS: To make a link to Wikipedia, type <code><nowiki>[[w:digital divide]]</nowiki></code> or <code><nowiki>[[w:digital divide|digital divide]]</nowiki></code> to get: [[w:digital divide]] or [[w:digital divide|digital divide]]. -- [[User:NipplesMeCool|<span style="color:#000090">Mr. '''NMC'''</span>]] ([[User talk:NipplesMeCool|<span style="color:#000090">talk</span>]]) 21:50, 23 April 2009 (UTC) cxxhw0brz62mkrdhkx1kgu74toclhbg User talk:Arlen22 3 205449 4668405 4639715 2026-09-03T15:32:12Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668405 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Arlen22!</div> <div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[Image:Crystal Clear app korganizer.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/> You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]]. If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed. </div> <div style="border-bottom:1px solid #15304f; background-color:#2a62a1; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project. * Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed. * Get help from the community in the [[Wikibooks:Reading room|Reading room]] or in our [[irc:wikibooks|IRC channel]]. * You cannot upload an image until you have been a member for at least '''4 days'''. If your upload is tagged with {{tlx|nld}}, {{tlx|bfu}}, or {{tlx|nfur}}, please read the template message as it explains the violation of [[WB:MEDIA|our media policy]]. Please be sure to provide the required {{tlx|information}}: a [[WB:ICT|license tag]] and source citation are always required; fair use images require a {{tlx|fair use rationale}}. Get help in the [[WB:HELP|user assistance room]]. </div> </div> <div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving. * Sign your name on [[Help:Talk page|discussion pages]] by typing &#126;&#126;&#126;&#126; * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * Need to rename a page? Use the ''move'' tab (only become available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:VFD|VFD]] archives if applicable. You can request undeletion at [[WB:VFU]], or ask the administrator who deleted the page. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks, [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 15:36, 29 July 2009 (UTC)</div> </div> <div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div> ==Content from Wikipedia== If you want to use a page from Wikipedia as a basis for a page in a book on Wikibooks, please request that it be imported at [[Wikibooks:Requests for Import]] in order to preserve the edit history. This way attribution is given to the original authors and you don't give the appearance that you're trying to claim the content as your own work. I merged [[w:Messier object]] into [[Messier Index]] for you, but please leave requests on the above page in the future. Thanks. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 15:36, 29 July 2009 (UTC) Thanks. Did you also add that template requesting expansion? If so, is there a template that states that the book is being currently worked on? Just wondering, I figure it would be more correct. (:Smile:) [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 15:50, 29 July 2009 (UTC) :You'd be looking for {{tlx|under construction}}. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 01:32, 3 August 2009 (UTC) == [[Messier Index]] == I've finished importing the pages you requested for this book. I am curious as to what you're planning to do with them all. What will this be a textbook on? How will you differentiate the pages from those already on Wikipedia? Those are certain questions you have to ask yourself when thinking about the future of that book. Happy editing. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 03:45, 31 July 2009 (UTC) I am going to summerize them into a guide on Deep Sky Objects. As you can see on the intro, they were found without a telescope (I think). I won't import any more till I see how this one turns out. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 11:16, 31 July 2009 (UTC) == Authorship == Hi, I reverted one change you made, since you added yourself to the author's list of a book was inappropriate, please read [[Wikibooks:Ownership]]. Any edits you do are kept on the history logs of pages so any work you do on any given project is preserved. Authors (or licensors) must be preserved on that page since they are the ones altering the rights over that work. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:30, 7 August 2009 (UTC) :This has backfired on you, read [[Wikibooks:Ownership]] [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 10:50, 8 August 2009 (UTC) ::How did you get that idea? ::Content contributions (you haven't made none to that particular book), aren't all copyrightable. A phrase, a format edit a correction of spelling, deletions, moving around of content don't constitutes relevant creative input. Even if they are nevertheless important contributions they don't provide ownership. ::As an example, you can grab complete phrases from other works were you don't own any rights and add them to another work, in this case you also aren't creating nothing by yourself, but you added real content... (This can be done but with extreme moderation, morally you should also include a reference from where you did your coping) ::The next thing of relevance is than only those that own the rights can grant them under a license (and defend their own rights), for instance if someone would copy the book and relicense it (or remove the license) only the copyright holder could initiate the necessary legal action. ::See also [[US Copyright Law]]... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 18:55, 8 August 2009 (UTC) :::You have no ownership above anyone else. "By saving, you agree to irrevocably release your contribution under the Creative Commons Attribution/Share-Alike License 3.0 and the GFDL. You agree to be credited by re-users, at minimum, through a hyperlink or URL to the page you are contributing to. See the Terms of Use for details." (taken from under the edit box). "If you do not want your writing to be edited and redistributed at will, then do not submit it here. If you did not write this yourself, it must be available under terms consistent with the Terms of Use, and you agree to follow any relevant licensing requirements." (this is under the save button) You cannot copyright it if you put it on wikibooks. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 20:16, 8 August 2009 (UTC) ::::Ownership does not equate as strict editorial control over the work (at least not as yet in the US, authors have some more control on the rest of the world). More a majority of the work was contributed under only the GFDL even some of the other works used with license were only under the GFDL. <s>Wikimedia hasn't as yet clarified the position</s> on this regard, only authors or Wikimedia as the published (and due the addendum to the last version of the GFDL can change the licenses and not to a dual licenses version). The GFDL and the Creative Commons Attribution/Share-Alike License 3.0 aren't compatible. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 23:10, 8 August 2009 (UTC) ::::"You cannot copyright it if you put it on wikibooks." this is wrong. As I stated above owners of content are only granting a license over their work, not giving away ownership of it. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 23:17, 8 August 2009 (UTC) ::::But you did have a point (not particularly on the dual licensing). Wikimedia has a statement now included on the bottom of every Wikibook page. The GFDL has been dropped (even if contributions can continue to be dual licensed) with no real advantage since works under only the GFDL can't be used, so supporting the GFDL has no advantage. Prior to this new alteration. (I had started a discussion on the subject on the general discussion area.) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 23:31, 8 August 2009 (UTC) I think you are redifining "By saving, you agree to irrevocably release your contribution under the Creative Commons Attribution/Share-Alike License 3.0" Works like this '''are not copyrighted''' (repeat 50 times). They are free content. They are copylefted. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 01:36, 9 August 2009 (UTC) :No. All creative works are copyrighted, by international agreement, unless either they fall into the public domain or their copyright is explicitly disclaimed. The GFDL and the Creative Commons Attribution/Share-Alike License are only distribution licenses, the owner grands the rights to use and destribute (under certain circumstances). Ownership of content is preserved, hence the clauses each license has to list authors (or copyright owners) as granting that right away (irrevocably) means once given the author can't remove the right for that content but can still sell or distribute the content under other licenses. The owner can do whatever he likes with his material and he is the only one that can defend his rights over it. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:50, 9 August 2009 (UTC) :Free content (Public domain or similar) is not the same as copyleft, GFDL or CC-ASAL. The last 3 licenses even if similar in spirit aren't even compatible among themselves due to the requirements the owner makes to the user... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:06, 9 August 2009 (UTC) Copyleft is a way of using of the copyright on the program. It doesn't mean abandoning the copyright; in fact, doing so would make copyleft impossible. (From http://www.gnu.org/copyleft/ ).<br> This is why the GPL (not GFDL) requests that if possible you put the rights in the hand of the Free Software Foundation since only the owner of the right can defend that the work stays free.<br> Anyway your understanding or viewpoint is not something new or unexpected most people only think about such things when they have made some effort that they wish to be recognized or compensated for. But lets reverse the situation consider that you just have added a huge number of your own creative work lets simplify this as images, ok now if you really did put it on the public domain or similar how would you defend your right to get attribution for those same images (I could just take them and say I had created them, even going to the limits that if no historial existed that you had released it into the public domain, I could even prevent you and others from using it), this has happen... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:20, 9 August 2009 (UTC) PS: The click-through is just a protection scheme for Wikimedia the publisher (since most of the users are anonymous), it doesn't go much beyond that, it just protects them from legal attacks (contributors and content owners can still get into trouble). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 02:26, 9 August 2009 (UTC) In the last several responses, you were right. But, there is no need of an authorship page, since everyone that makes a spelling correction could have copyrighted the page if he didn't release it to CC-by-SA. You're whole concept of wikibooks is wrong. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 11:22, 9 August 2009 (UTC) :It is up to the author to decide if he wants to establish his ownership and clearly state the terms of his contributions. This is supported by the license (GFDL or CC-ASAL) and by the publisher (Wikimedia). This is a requirement if a need arises to defend the execution of the licenses. :The notion that the history logs can serve to determine who contributed content is flawed, it can help but extracting any useful information from them would be very hard. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 18:38, 9 August 2009 (UTC) ::I have decided to establish my ownership. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 21:24, 16 August 2009 (UTC) :::It is your right to claim your work as your own, it enables you to protect it (as discussed above), gives you recognition for what you have done and is a requirement if a need arises to change or add to a previous license. As you contribute significative content to a work you should do it. One other aspect is that by making such claim and depending on the rights you then invoke on the work, or because of the content added, an author (or any one that claims ownership of a work) is also liable to legal actions if the claims are false or other rights are infringed. :::The problem of the history logs is that not every edit made to a page can be copyrighted, spell checking, reformatting (moving text, deleting or even merging other peoples content isn't adding you own work), it can even become lost as text is moved into other pages and pages are deleted over time. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 22:39, 16 August 2009 (UTC) ::::The admins can always see all the logs, even before the page was deleted. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 14:17, 19 August 2009 (UTC) :::::There is no way to automate all the processing needed to gather useful information from them. Even if the last updates that provide an idea on what was done on that edit action it is mostly useless. Consider reversal, vandalism, moving large bits of text from page to page, spelling and other maintenance edits. :::::Consider Darklama's edits, I can assure you that on all his edits on the book, his own content shouldn't be above a phrase or two, yet if you examine the book's history logs (especially in pages created around the time he was contributing would give you another idea), doing a similar work from the start in all pages to all contributors would be futile. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 17:37, 19 August 2009 (UTC) == Community consensus essay == I noticed that you made a spelling correction. If you are also reading it, I would be very much interested in any comments corrections or ideas you may have regarding the subject. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 12:34, 10 August 2009 (UTC) == Import request == Your request has been completed. You can find the page at [[Transwiki:List of Messier objects]]. -- [[User:Adrignola|Adrignola]] <sup>[[User talk:Adrignola|talk]] [[Special:Contributions/Adrignola|contribs]]</sup> 16:23, 25 August 2009 (UTC) == Restriction of image uploads == Have you been satisfied with the replies enough to change you position or have you any other reason to oppose the change ?<br> (Please restate you position [[Wikibooks:Reading_room/General#Restriction_of_image_uploads|here]], Thanks...) --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 06:31, 1 September 2009 (UTC) == Can you please clarify you position == Regarding your vote on the [[Wikibooks:FlaggedRevs Extension/Unstable]] proposal, since you don't indicate a revision (and previous positions support other proposal). Can you please clarify you position. Thanks. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:01, 3 July 2010 (UTC) :The process is already a great confusion. I have <u>decontextualized</u> your last [[Wikibooks talk:Revision review/Proposed#Reconfiguring Wikibooks|posts]] as to prevent increasing the problem, read my post to you there and see if you disagree with it. I will also try to put some order on the still running proposal on the general discussion forum. The initial vote was premature, it still remains premature, since people are being able to compromise and understand each-others positions. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 17:39, 3 July 2010 (UTC) ::Actually, I didn't think it was closed, we are still voting and working on it. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 18:46, 3 July 2010 (UTC) :::Along that line, the proposal has been revised to not restrict the rating of pages at the top level to admins. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 12:44, 5 July 2010 (UTC) == [[Colonizing Outer Space]] == Have you taken a look into [[Colonizing Outer Space]]. I did ask you to take a look at it because it seems it could match your interests in astronomy (by your previous contributions). There is a lack of information on the Lagrange points, recent planetary discovery on other solar systems, etc... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:14, 6 July 2010 (UTC) :Thanks for the heads up. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 02:08, 6 July 2010 (UTC) == [[User:Panic2k4/Decision making and Community consensus on Wikibooks]] == I don't know if already read it but take a look, it covers all my thoughts on the matter and experience gained on Wikibooks (and by examining the other Wikimedia projects) and discussions with other WIkibookains regarding the subject. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 18:52, 8 July 2010 (UTC) :One thing to remember is that not everyone has to agree. As long as no one is {{oppose|Strongly Opposed}} to something, it isn't too big of a deal if it is just one person. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 19:06, 8 July 2010 (UTC) ::It all depends on the level of recognition granted to the opposing view and the validity of the argument as to permit others the chance express and attempt to gather support for their views. Note also that not all proposal start with a majority support (it doesn't need to be a position of opposition). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 19:29, 8 July 2010 (UTC) :::Yeah, you're right. [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 19:31, 8 July 2010 (UTC) == Messier Index == On the Messier numbers the cite notes are not working. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 21:42, 24 July 2010 (UTC) == Request for permissions == I've now been able to grant your request for the transwiki importer right to perform imports. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 22:53, 15 August 2010 (UTC) == Just to be sure you understood == I'm in no way calling you a troll, I was only making a remarks on the unbalance of actions to suppress (or enhance) one side of the issue and the classification regarding the relevance of participations toward the issues at hand. I'm however being critical of bringing outside event into that discussion at that forum in general. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 12:14, 17 August 2010 (UTC) == Response requested == Arlen, do you think you could respond [http://en.wikibooks.org/w/index.php?title=User_talk:Thekohser&diff=next&oldid=1931064 over here]? Thanks. -- [[User:Thekohser|Thekohser]] ([[User talk:Thekohser|talk]]) 18:43, 13 September 2010 (UTC) == [[Template:User3]] == The "rights" link is for admins/crats to get to the interface to add/remove rights, not to list the person's current positions. If you wish to have that, it would be best to add another link to the template, not to change the existing one. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 14:05, 4 October 2010 (UTC) :Done. How's that? -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 14:09, 4 October 2010 (UTC) ::Great. Best of both worlds. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 15:25, 4 October 2010 (UTC) == [[w:Origami techniques|Origami techniques]] importation == Hello, I need [[w:Origami techniques|this page]] to be imported for [[Origami|this book]]. Can you do that for me please? [[User:Ftiercel|Ftiercel]] ([[User talk:Ftiercel|discuss]] • [[Special:Contributions/Ftiercel|contribs]]) 18:17, 21 September 2011 (UTC) :I've done this - in future please put requests on [[WB:RFI]] as then any admin or importer can do it for you. Thanks [[User:QuiteUnusual|<span style="color:#E66C2C">'''QU'''</span>]] <sup>[[User talk:QuiteUnusual|<span style="color:#306754">TalkQu</span>]]</sup> 18:42, 21 September 2011 (UTC) ::OK. Thanks. Here is why I do that. I have followed those links: [[Wikibooks:Community Portal]] -> [[Using Wikibooks]] -> [[Using Wikibooks/Deleting, Undeleting, and Importing#Importing]]. As it talks about [[Special:Import]], I have followed this page and on this page, it suggests to go [[Wikibooks:Importers|here]]. I think [[Using Wikibooks/Deleting, Undeleting, and Importing#Importing]] or [[Special:Import]] should mention [[WB:RFI|this page]], shouldn't it? [[User:Ftiercel|Ftiercel]] ([[User talk:Ftiercel|discuss]] • [[Special:Contributions/Ftiercel|contribs]]) 18:57, 21 September 2011 (UTC) :::[[Using Wikibooks/Deleting, Undeleting, and Importing#Importing|Added]]. [[User:Ftiercel|Ftiercel]] ([[User talk:Ftiercel|discuss]] • [[Special:Contributions/Ftiercel|contribs]]) 18:38, 23 September 2011 (UTC) == Updated scripts == Hi Arlen22. I [[Special:Diff/2983145|edited your <code>vector.js</code>]] to update you to the latest version of [[m:TemplateScript|TemplateScript]]. You were using a much older version called [[m:User:Pathoschild/Scripts/Regex menu framework|regex menu framework]], so the main difference you'll see is an improved regex editor and cleaner custom scripts. I also [[mw:ResourceLoader/Migration guide (users)|updated deprecated functions]] and made your scripts HTTPS-compatible. Let me know if anything breaks. :) —<small>[[m:User:Pathoschild|Pathoschild]] 18:44:34, 09 August 2015 (UTC)</small> == New book == I see you set up a new book, its book category, ''and'' a new subject (for it and several other anticipated books, which seems fair :-). I hope the infrastructure made that a reasonably straightforward process; if you observed any rough edges, I'd be interested to hear so I can think about how to smooth them out. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 21:02, 22 December 2016 (UTC) :Thank you for your interest. The biggest struggle was finding the WikiProject templates. The book templates seemed fairly straight forward once I figured it out. -[[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 22:05, 22 December 2016 (UTC) == www caffgo == 123hay.net WinAmp.org Vim.org [[Special:Contributions/&#126;2026-34135-18|&#126;2026-34135-18]] ([[User talk:&#126;2026-34135-18|talk]]) 06:22, 10 June 2026 (UTC) qxk8wc4tt77fcu5w93i1cs9ignd17n3 Songbook 0 206837 4668442 4395503 2026-09-03T18:16:12Z Ashaio 155977 /* S */ + Silent Night 4668442 wikitext text/x-wiki __NOTOC__ {{Shelves|Music}} {{Alphabetical|S}} {{status|25%}} [[Image:Alouette_%28partition%29.jpg|center|500px|guitar]]{{Book title|The Free Songbook}} == Contents == === Front Matter === # [[/Introduction/]] === Song Index === {{CompactTOC8}} <div style="column-count:2"> ==== 123 ==== <!-- 500 Miles Hedy West--> *[[Songbook/500 Miles - Hedy West| 500 Miles (Hedy West)]] ==== A ==== <!-- Acres Of Clams --> *[[Songbook/Acres Of Clams|Acres Of Clams]] *: [[b:de:Liederbuch/ Acres Of Clams|Acres Of Clams]] <!-- Agnus Dei --> *[[Songbook/Agnus Dei|Agnus Dei]] *: [[b:de:Liederbuch/ Agnus Dei|Agnus Dei]] <!-- All Creatures Of Our God And King --> *[[Songbook/All Creatures Of Our God And King|All Creatures Of Our God And King]] *: [[b:de:Liederbuch/ All Creatures Of Our God And King|All Creatures Of Our God And King]] <!-- Alle Jahre wieder --> *[[Songbook/Alle Jahre wieder|Alle Jahre wieder]] *: [[b:de:Liederbuch/ Alle Jahre wieder|Alle Jahre wieder]] <!-- Alle Vögel sind schon da --> *[[Songbook/Alle Vögel sind schon da|Alle Vögel sind schon da]] *: [[b:de:Liederbuch/ Alle Vögel sind schon da|Alle Vögel sind schon da]] <!-- Alleluia --> *[[Songbook/Alleluia|Alleluia]] *: [[b:de:Liederbuch/ Alleluia|Alleluia]] <!-- Alleluja --> *[[Songbook/Alleluja|Alleluja]] *: [[b:de:Liederbuch/ Alleluja|Alleluja]] <!-- Aloha Oe --> *[[Songbook/Aloha Oe|Aloha Oe]] *: [[b:de:Liederbuch/ Aloha Oe|Aloha Oe]] <!-- Am Weihnachtsbaum die Lichter brennen --> *[[Songbook/Am Weihnachtsbaum die Lichter brennen|Am Weihnachtsbaum die Lichter brennen]] *: [[b:de:Liederbuch/ Am Weihnachtsbaum die Lichter brennen|Am Weihnachtsbaum die Lichter brennen]] <!-- Amapola --> *[[Songbook/Amapola|Amapola]] *: [[b:de:Liederbuch/ Amapola|Amapola]] <!-- An Schlosser hot an G'sellen g'hot --> *[[Songbook/An Schlosser hot an G'sellen g'hot| An Schlosser hot an G'sellen g'hot]] *: [[b:de:Liederbuch/ An Schlosser hot an G'sellen g'hot|An Schlosser hot an G'sellen g'hot]] <!-- Anke van Tharaw --> *[[Songbook/Anke van Tharaw|Anke van Tharaw]] *: [[b:de:Liederbuch/ Anke van Tharaw|Anke van Tharaw]] <!-- As Time Goes By --> *[[Songbook/As Time Goes By|As Time Goes By]] *: [[b:de:Liederbuch/ As Time Goes By|As Time Goes By]] <!-- Asturias - part 1 --> *[[Songbook/Asturias - part 1| Asturias - part 1]] *: [[b:de:Liederbuch/ Asturias - Teil. 1|Asturias - Teil. 1]] <!-- Auf dem Donnerbalken|Auf dem Donnerbalken --> *[[Songbook/Auf dem Donnerbalken|Auf dem Donnerbalken]] *: [[b:de:Liederbuch/ Auf dem Donnerbalken|Auf dem Donnerbalken]] <!-- Auf der schwäbschen Eisenbahne --> *[[Songbook/Auf der schwäbschen Eisenbahne|Auf der schwäbschen Eisenbahne]] *: [[b:de:Liederbuch/ Auf der schwäbschen Eisenbahne|Auf der schwäbschen Eisenbahne]] <!-- Auld Lang Syne --> *[[Songbook/Auld Lang Syne|Auld Lang Syne]] *: [[b:de:Liederbuch/ Auld Lang Syne|Auld Lang Syne]] <!-- Aura Lee --> *[[Songbook/Aura Lee|Aura Lee]] *: [[b:de:Liederbuch/ Aura Lee|Aura Lee]] *[[Songbook/Aura Lee/Tabs|Aura Lee (Tabs)]] *: [[b:de:Liederbuch/ Aura Lee/ Gitarrentabulatur|Aura Lee/ Gitarrentabulatur]] <!-- Ave Maria (Bach-Gounod) --> *[[Songbook/Ave Maria (Bach-Gounod)|Ave Maria (Bach-Gounod)]] *: [[b:de:Liederbuch/ Ave Maria (Bach-Gounod)|Ave Maria (Bach-Gounod)]] ==== B ==== <!-- Banana Boat Song --> *[[Songbook/Banana Boat Song|Banana Boat Song]] *: [[b:de:Liederbuch/ Banana Boat Song|Banana Boat Song]] <!-- Banks of the Ohio --> *[[Songbook/Banks of the Ohio|Banks of the Ohio]] *: [[b:de:Liederbuch/ Banks of the Ohio|Banks of the Ohio]] <!-- Barbara Allen --> *[[Songbook/Barbara Allen|Barbara Allen]] *: [[b:de:Liederbuch/ Barbara Allen|Barbara Allen]] <!-- Accompanying proposal Mr. Bojangles --> *[[Songbook/Accompanying proposal Mr. Bojangles|Accompanying proposal Mr. Bojangles]] *: [[b:de:Liederbuch/ Begleitvorschlag Mr. Bojangles|Begleitvorschlag Mr. Bojangles]] <!-- Bergvagabunden --> *[[Songbook/Bergvagabunden|Bergvagabunden]] *: [[b:de:Liederbuch/ Bergvagabunden|Bergvagabunden]] <!-- Bolle reiste jüngst zu Pfingsten --> *[[Songbook/Bolle reiste jüngst zu Pfingsten|Bolle reiste jüngst zu Pfingsten]] *: [[b:de:Liederbuch/ Bolle reiste jüngst zu Pfingsten|Bolle reiste jüngst zu Pfingsten]] <!-- Botany Bay --> *[[Songbook/Botany Bay|Botany Bay]] *: [[b:de:Liederbuch/ Botany Bay|Botany Bay]] <!-- Brahms Lullaby --> *[[Songbook/Brahms Lullaby|Brahms Lullaby]] *: [[b:de:Liederbuch/ Brahms Gutenacht-Lied|Brahms Gutenacht-Lied]] <!-- Brother John --> *[[Songbook/Brother John|Brother John]] *: [[b:de:Liederbuch/ Bruder Jakob für Gitarre|Bruder Jakob für Gitarre]] <!-- Brüderchen komm Tanz mit mir --> *[[Songbook/Brüderchen komm Tanz mit mir|Brüderchen komm Tanz mit mir]] *: [[b:de:Liederbuch/ Brüderchen komm Tanz mit mir|Brüderchen komm Tanz mit mir]] <!-- Buffalo Gals --> *[[Songbook/Buffalo Gals|Buffalo Gals]] *: [[b:de:Liederbuch/ Buffalo Gals|Buffalo Gals]] <!-- Bunt sind schon die Wälder --> *[[Songbook/Bunt sind schon die Wälder|Bunt sind schon die Wälder]] *: [[b:de:Liederbuch/ Bunt sind schon die Wälder|Bunt sind schon die Wälder]] ==== C ==== <!-- Camptown Races --> *[[Songbook/Camptown Races|Camptown Races]] *: [[b:de:Liederbuch/ Camptown Races|Camptown Races]] <!-- Carrickfergus --> *[[Songbook/Carrickfergus|Carrickfergus]] <!-- Child In The Manger --> *[[Songbook/Child In The Manger|Child In The Manger]] *: [[b:de:Liederbuch/ Child In The Manger|Child In The Manger]] *[[Songbook/Child In The Manger/Tab| Child In The Manger/ Gitarrentabulatur]] *: [[b:de:Liederbuch/ Child In The Manger/ Gitarrentabulatur| Child In The Manger (Tab)]] <!-- Choucoune --> *[[Songbook/Choucoune|Choucoune]] *: [[b:de:Liederbuch/ Choucoune|Choucoune]] <!-- Christ ist erstanden --> *[[Songbook/Christ ist erstanden|Christ ist erstanden]] *: [[b:de:Liederbuch/ Christ ist erstanden|Christ ist erstanden]] <!-- Christ lag in Todesbanden --> *[[Songbook/Christ lag in Todesbanden|Christ lag in Todesbanden]] *: [[b:de:Liederbuch/ Christ lag in Todesbanden|Christ lag in Todesbanden]] <!-- Christe, du Lamm Gottes (Graz) --> *[[Songbook/Christe, du Lamm Gottes (Graz)|Christe, du Lamm Gottes (Graz)]] *: [[b:de:Liederbuch/ Christe, du Lamm Gottes (Graz)|Christe, du Lamm Gottes (Graz)]] <!-- Christe, du Lamm Gottes (Luther) --> *[[Songbook/Christe, du Lamm Gottes (Luther)|Christe, du Lamm Gottes (Luther)]] *: [[b:de:Liederbuch/ Christe, du Lamm Gottes (Luther)|Christe, du Lamm Gottes (Luther)]] <!-- Clementine --> *[[Songbook/Clementine|Clementine]] *: [[b:de:Liederbuch/ Clementine|Clementine]] <!-- Corrine Corrina --> *[[Songbook/Corrine Corrina|Corrine Corrina]] *: [[b:de:Liederbuch/ Corrine Corrina|Corrine Corrina]] <!-- Cotton-Eyed Joe --> *[[Songbook/Cotton-Eyed Joe|Cotton-Eyed Joe]] *: [[b:de:Liederbuch/ Cotton-Eyed Joe|Cotton-Eyed Joe]] <!-- Cotton Fields --> *[[Songbook/Cotton Fields|Cotton Fields]] *: [[b:de:Liederbuch/ Cotton Fields|Cotton Fields]] <!-- Credo --> *[[Songbook/Credo|Credo]] *: [[b:de:Liederbuch/ Credo|Credo]] ==== D ==== <!-- Da hat das Hottepferd --> *[[Songbook/Da hat das Hottepferd|Da hat das Hottepferd]] *: [[b:de:Liederbuch/ Da hat das Hottepferd|Da hat das Hottepferd]] <!-- Danny Boy --> *[[Songbook/Danny Boy|Danny Boy]] *: [[b:de:Liederbuch/ Danny Boy|Danny Boy]] <!-- Das Bürgerlied --> *[[Songbook/Das Bürgerlied|Das Bürgerlied]] *: [[b:de:Liederbuch/ Das Bürgerlied|Das Bürgerlied]] <!-- Der Blinde und der Lahme --> *[[Songbook/Der Blinde und der Lahme|Der Blinde und der Lahme]] *: [[b:de:Liederbuch/ Der Blinde und der Lahme|Der Blinde und der Lahme]] <!-- Der Kuckuck und der Esel --> *[[Songbook/Der Kuckuck und der Esel|Der Kuckuck und der Esel]] *: [[b:de:Liederbuch/ Der Kuckuck und der Esel|Der Kuckuck und der Esel]] <!-- Der Lagerboogie --> *[[Songbook/Der Lagerboogie|Der Lagerboogie]] *: [[b:de:Liederbuch/ Der Lagerboogie|Der Lagerboogie]] <!-- Die Affen rasen durch den Wald --> *[[Songbook/Die Affen rasen durch den Wald|Die Affen rasen durch den Wald]] *: [[b:de:Liederbuch/ Die Affen rasen durch den Wald|Die Affen rasen durch den Wald]] <!-- Die Gedanken sind frei --> *[[Songbook/Die Gedanken sind frei|Die Gedanken sind frei]] *: [[b:de:Liederbuch/ Die Gedanken sind frei|Die Gedanken sind frei]] <!-- Die Leinweber --> *[[Songbook/Die Leinweber|Die Leinweber]] *: [[b:de:Liederbuch/ Die Leinweber|Die Leinweber]] <!-- Die Wissenschaft hat festgestellt --> *[[Songbook/Die Wissenschaft hat festgestellt|Die Wissenschaft hat festgestellt]] *: [[b:de:Liederbuch/ Die Wissenschaft hat festgestellt|Die Wissenschaft hat festgestellt]] <!-- Die alten Rittersleut --> *[[Songbook/Die alten Rittersleut|Die alten Rittersleut]] *: [[b:de:Liederbuch/ Die alten Rittersleut|Die alten Rittersleut]] <!-- Down By The Sally Gardens --> *[[Songbook/Down By The Sally Gardens|Down By The Sally Gardens]] *: [[b:de:Liederbuch/ Down By The Sally Gardens|Down By The Sally Gardens]] <!-- Down by the riverside --> *[[Songbook/Down by the riverside|Down by the riverside]] *: [[b:de:Liederbuch/ Down by the riverside|Down by the riverside]] <!-- Drei Chinesen mit dem Kontrabass --> *[[Songbook/Drei Chinesen mit dem Kontrabass|Drei Chinesen mit dem Kontrabass]] *: [[b:de:Liederbuch/ Drei Chinesen mit dem Kontrabass|Drei Chinesen mit dem Kontrabass]] ==== E ==== <!-- Ein Jäger aus Kurpfalz --> *[[Songbook/Ein Jäger aus Kurpfalz|Ein Jäger aus Kurpfalz]] *: [[b:de:Liederbuch/ Ein Jäger aus Kurpfalz|Ein Jäger aus Kurpfalz]] <!-- Ein Loch ist im Eimer --> *[[Songbook/Ein Loch ist im Eimer|Ein Loch ist im Eimer]] *: [[b:de:Liederbuch/ Ein Loch ist im Eimer|Ein Loch ist im Eimer]] <!-- Ein Mann der sich Columbus nannt --> *[[Songbook/Ein Mann der sich Columbus nannt|Ein Mann der sich Columbus nannt]] *: [[b:de:Liederbuch/ Ein Mann der sich Columbus nannt|Ein Mann der sich Columbus nannt]] <!-- Ein Männlein steht im Walde --> *[[Songbook/Ein Männlein steht im Walde|Ein Männlein steht im Walde]] *: [[b:de:Liederbuch/ Ein Männlein steht im Walde|Ein Männlein steht im Walde]] <!-- Eiris sazun idisi --> *[[Songbook/Eiris sazun idisi|Eiris sazun idisi]] *: [[b:de:Liederbuch/ Erster Merseburger Zauberspruch|Erster Merseburger Zauberspruch]] <!-- Es kommt ein Schiff geladen --> *[[Songbook/Es kommt ein Schiff geladen|Es kommt ein Schiff geladen]] *: [[b:de:Liederbuch/ Es kommt ein Schiff geladen|Es kommt ein Schiff geladen]] <!-- Es tanzt ein Bi-Ba-Buzemann --> *[[Songbook/Es tanzt ein Bi-Ba-Buzemann|Es tanzt ein Bi-Ba-Buzemann]] *: [[b:de:Liederbuch/ Es tanzt ein Bi-Ba-Buzemann|Es tanzt ein Bi-Ba-Buzemann]] <!-- Es wird schon gleich dumpa --> *[[Songbook/Es wird schon gleich dumpa|Es wird schon gleich dumpa]] *: [[b:de:Liederbuch/ Es wird schon gleich dumpa|Es wird schon gleich dumpa]] <!-- Foggy Dew --> *[[Songbook/Foggy Dew|Foggy Dew]] *: [[b:de:Liederbuch/ Foggy Dew|Foggy Dew]] <!-- Follow me up to Carlow --> *[[Songbook/Follow me up to Carlow|Follow me up to Carlow]] *: [[b:de:Liederbuch/ Follow me up to Carlow|Follow me up to Carlow]] ==== G ==== <!-- Geordie --> *[[Songbook/Geordie| Geordie]] *: [[b:de:Liederbuch/ Geordie|Geordie]] <!-- Gloria in excelsis Deo --> *[[Songbook/Gloria in excelsis Deo|Gloria in excelsis Deo]] *: [[b:de:Liederbuch/ Gloria in excelsis Deo|Gloria in excelsis Deo]] <!-- Glück auf, der Steiger kommt --> *[[Songbook/Glück auf, der Steiger kommt|Glück auf, der Steiger kommt]] *: [[b:de:Liederbuch/ Glück auf, der Steiger kommt|Glück auf, der Steiger kommt]] <!-- Go down Moses --> *[[Songbook/Go down Moses|Go down Moses]] *: [[b:de:Liederbuch/ Go down Moses|Go down Moses]] <!-- Gott, heilger Schöpfer aller Stern --> *[[Songbook/Gott, heilger Schöpfer aller Stern|Gott, heilger Schöpfer aller Stern]] *: [[b:de:Liederbuch/ Gott, heilger Schöpfer aller Stern|Gott, heilger Schöpfer aller Stern]] <!-- Gottes Lamm --> *[[Songbook/Gottes Lamm|Gottes Lamm]] *: [[b:de:Liederbuch/ Gottes Lamm|Gottes Lamm]] <!-- Gottes Sohn ist kommen --> *[[Songbook/Gottes Sohn ist kommen|Gottes Sohn ist kommen]] *: [[b:de:Liederbuch/ Gottes Sohn ist kommen|Gottes Sohn ist kommen]] <!-- Greensleeves --> *[[Songbook/Greensleeves|Greensleeves]] *: [[b:de:Liederbuch/ Greensleeves|Greensleeves]] *[[Songbook/Greensleeves/Tab|Greensleeves (Tab)]] *: [[b:de:Liederbuch/ Greensleeves/ Gitarrentabulatur|Greensleeves (Tab)]] <!-- Gregor --> *[[Songbook/Gregor|Gregor]] *: [[b:de:Liederbuch/ Gregor|Gregor]] <!-- Gstanzln --> *[[Songbook/Gstanzln|Gstanzln]] *: [[b:de:Liederbuch/ Gstanzln|Gstanzln]] <!-- Guantanamera --> *[[Songbook/Guantanamera|Guantanamera]] *: [[b:de:Liederbuch/ Guantanamera|Guantanamera]] ==== H ==== <!-- House in New Orleon --> *[[Songbook/House in New Orleon|House in New Orleon]] *[[Songbook/Hänsel und Gretel|Hänsel und Gretel]] <!-- She'll Be Coming 'Round the Mountain --> *[[Songbook/She'll Be Coming 'Round the Mountain|She'll Be Coming 'Round the Mountain]] *: [[b:de:Liederbuch/ Hab ne Tante aus Marokko|Hab ne Tante aus Marokko]] <!-- Halleluja --> *[[Songbook/Halleluja|Halleluja]] *: [[b:de:Liederbuch/ Halleluja|de:Liederbuch/ Halleluja]] <!-- Happy Birthday to You --> *[[Songbook/Happy Birthday to You|Happy Birthday to You]] *: [[b:de:Liederbuch/ |de:Liederbuch/ ]] <!-- Hard Times Come Again No More --> *[[Songbook/Hard Times Come Again No More|Hard Times Come Again No More]] *: [[b:de:Liederbuch/ Hard Times Come Again No More|Hard Times Come Again No More|Hard Times Come Again No More]] <!-- Hawa nagila --> *[[Songbook/Hawa nagila|Hawa nagila]] *: [[b:de:Liederbuch/ Hawa nagila|Hawa nagila]] <!-- Hey Ho Nobody Home --> *[[Songbook/Hey Ho Nobody Home|Hey Ho Nobody Home]] <!-- Herbei O ihr Gläubigen --> *[[Songbook/Herbei O ihr Gläubigen|Herbei O ihr Gläubigen]] *: [[b:de:Liederbuch/ Herbei O ihr Gläubigen|Herbei O ihr Gläubigen]] <!-- He's got the whole world --> *[[Songbook/He's got the whole world|He's got the whole world]] *: [[b:de:Liederbuch/ Er hält die ganze Welt in seiner Hand|Er hält die ganze Welt in seiner Hand]] <!-- Hoch auf dem gelben Wagen --> *[[Songbook/Hoch auf dem gelben Wagen|Hoch auf dem gelben Wagen]] *: [[b:de:Liederbuch/ Hoch auf dem gelben Wagen|Hoch auf dem gelben Wagen]] <!-- Hopp hopp hopp Pferdchen lauf Galopp --> *[[Songbook/Hopp hopp hopp Pferdchen lauf Galopp|Hopp hopp hopp Pferdchen lauf Galopp]] *: [[b:de:Liederbuch/ Hopp hopp hopp Pferdchen lauf Galopp|Hopp hopp hopp Pferdchen lauf Galopp]] <!-- Hoppe hoppe Reiter --> *[[Songbook/Hoppe hoppe Reiter|Hoppe hoppe Reiter]] *: [[b:de:Liederbuch/ Hoppe hoppe Reiter|Hoppe hoppe Reiter]] <!-- House Of The Rising Sun --> *[[Songbook/House Of The Rising Sun|House Of The Rising Sun]] *: [[b:de:Liederbuch/ House Of The Rising Sun|House Of The Rising Sun]] ==== I ==== <!-- I Never Will Marry --> *[[Songbook/I Never Will Marry|I Never Will Marry]] *: [[b:de:Liederbuch/ I Never Will Marry|I Never Will Marry]] <!-- I like the flowers --> *[[Songbook/I like the flowers|I like the flowers]] *: [[b:de:Liederbuch/ I like the flowers|I like the flowers]] <!-- Ich steh an deiner Krippe hier --> *[[Songbook/Ich steh an deiner Krippe hier|Ich steh an deiner Krippe hier]] *: [[b:de:Liederbuch/ Ich steh an deiner Krippe hier|Ich steh an deiner Krippe hier]] <!-- Ihr Kinderlein Kommet --> *[[Songbook/Ihr Kinderlein Kommet|Ihr Kinderlein Kommet]] *: [[b:de:Liederbuch/ Ihr Kinderlein Kommet|Ihr Kinderlein Kommet]] <!-- In einem Harung --> *[[Songbook/In einem Harung|In einem Harung]] *: [[b:de:Liederbuch/ In einem Harung|In einem Harung]] ==== J ==== <!-- Ja wenn der Herr für Gitarre --> *[[Songbook/Ja wenn der Herr für Gitarre|Ja wenn der Herr für Gitarre]] *: [[b:de:Liederbuch/ Ja wenn der Herr für Gitarre|Ja wenn der Herr für Gitarre]] <!-- Jamaica Farwell --> *[[Songbook/Jamaica Farwell|Jamaica Farwell]] *: [[b:de:Liederbuch/ Jamaica Farwell|Jamaica Farwell]] <!-- Jeder Eseltreiber --> *[[Songbook/Jeder Eseltreiber|Jeder Eseltreiber]] *: [[b:de:Liederbuch/ Jeder Eseltreiber|Jeder Eseltreiber]] <!-- Jetzt fahrn wir übern See --> *[[Songbook/Jetzt fahrn wir übern See|Jetzt fahrn wir übern See]] *: [[b:de:Liederbuch/ Jetzt fahrn wir übern See|Jetzt fahrn wir übern See]] <!-- Jingle Bells --> *[[Songbook/Jingle Bells|Jingle Bells]] *: [[b:de:Liederbuch/ Jingle Bells|Jingle Bells]] <!-- Joshua fit the battle of Jericho --> *[[Songbook/Joshua fit the battle of Jericho|Joshua fit the battle of Jericho]] *: [[b:de:Liederbuch/ Joshua fit the battle of Jericho|Joshua fit the battle of Jericho]] ==== K ==== <!-- Keep On Truckin Mamma --> *[[Songbook/Keep On Truckin Mamma|Keep On Truckin Mamma]] *: [[b:de:Liederbuch/ Keep On Truckin Mamma|Keep On Truckin Mamma]] <!-- Kling Glöckchen --> *[[Songbook/Kling Glöckchen|Kling Glöckchen]] *: [[b:de:Liederbuch/ Kling Glöckchen|Kling Glöckchen]] <!-- Kommet, ihr Hirten --> *[[Songbook/Kommet, ihr Hirten|Kommet, ihr Hirten]] *: [[b:de:Liederbuch/ Kommet, ihr Hirten|Kommet, ihr Hirten]] <!-- Kommt ein Vogel geflogen --> *[[Songbook/Kommt ein Vogel geflogen|Kommt ein Vogel geflogen]] *: [[b:de:Liederbuch/ Kommt ein Vogel geflogen|Kommt ein Vogel geflogen]] <!-- Korn das in die Erde --> *[[Songbook/Korn das in die Erde|Korn das in die Erde]] *: [[b:de:Liederbuch/ Korn das in die Erde|Korn das in die Erde]] <!-- Kumbayah my Lord --> *[[Songbook/Kumbayah my Lord|Kumbayah my Lord]] *: [[b:de:Liederbuch/ Kumbayah my Lord|Kumbayah my Lord]] ==== L ==== <!-- La Bamba --> *[[Songbook/La Bamba|La Bamba]] *: [[b:de:Liederbuch/ La Bamba|La Bamba]] <!-- Lamm Gottes --> *[[Songbook/Lamm Gottes|Lamm Gottes]] *: [[b:de:Liederbuch/ Lamm Gottes|Lamm Gottes]] <!-- Lasset uns mit Jesus ziehen --> *[[Songbook/Lasset uns mit Jesus ziehen|Lasset uns mit Jesus ziehen]] *: [[b:de:Liederbuch/ Lasset uns mit Jesus ziehen|Lasset uns mit Jesus ziehen]] <!-- Lasst uns erfreuen --> *[[Songbook/Lasst uns erfreuen|Lasst uns erfreuen]] *: [[b:de:Liederbuch/ Lasst uns erfreuen|Lasst uns erfreuen]] <!-- Lasst uns froh und munter sein --> *[[Songbook/Lasst uns froh und munter sein|Lasst uns froh und munter sein]] *: [[b:de:Liederbuch/ Lasst uns froh und munter sein|Lasst uns froh und munter sein]] *[[Songbook/Lasst uns froh und munter sein/Tab|Lasst uns froh und munter sein (Tab)]] *: [[b:de:Liederbuch/ Lasst uns froh und munter sein/ Gitarrentabulatur|Lasst uns froh und munter sein (Tab)]] <!-- Laudato Si --> *[[Songbook/Laudato Si|Laudato Si]] *: [[b:de:Liederbuch/ Laudato Si|Laudato Si]] <!-- Leise rieselt der Schnee --> *[[Songbook/Leise rieselt der Schnee|Leise rieselt der Schnee]] *: [[b:de:Liederbuch/ Leise rieselt der Schnee|Leise rieselt der Schnee]] *[[Songbook/Leise rieselt der Schnee/Tab|Leise rieselt der Schnee (Tab)]] *: [[b:de:Liederbuch/ Leise rieselt der Schnee - Tabulatur|Leise rieselt der Schnee (Tab)]] <!-- Layout --> *[[Songbook/Layout|Layout]] *: [[b:de:Liederbuch/ Liedblattlayout|Liedblattlayout]] <!-- Create song sheets --> *[[Songbook/Create song sheets|Create song sheets]] *: [[b:de:Liederbuch/ Liedblätter erstellen|Liedblätter erstellen]] <!-- Loch Lomond --> *[[Songbook/Loch Lomond|Loch Lomond]] *: [[b:de:Liederbuch/ Loch Lomond|Loch Lomond]] ==== M ==== <!-- Macht hoch die Tür --> *[[Songbook/Macht hoch die Tür|Macht hoch die Tür]] *: [[b:de:Liederbuch/ Macht hoch die Tür|Macht hoch die Tür]] <!-- Mama Don't Allow --> *[[Songbook/Mama Don't Allow|Mama Don't Allow]] *: [[b:de:Liederbuch/ Mama Don't Allow|Mama Don't Allow]] <!-- Mein Christian --> *[[Songbook/Mein Christian|Mein Christian]] *: [[b:de:Liederbuch/ Mein Christian|Mein Christian]] {{Todo|hide unknown songs, ore use it for lessons}} <!-- Meine Blümchen haben Durst --> *[[Songbook/Meine Blümchen haben Durst|Meine Blümchen haben Durst]] *: [[b:de:Liederbuch/ Meine Blümchen haben Durst|Meine Blümchen haben Durst]] <!-- Meine Oma fährt im Hühnerstall Motorrad --> *[[Songbook/Meine Oma fährt im Hühnerstall Motorrad|Meine Oma fährt im Hühnerstall Motorrad]] *: [[b:de:Liederbuch/ Meine Oma fährt im Hühnerstall Motorrad|Meine Oma fährt im Hühnerstall Motorrad]] <!-- Michael row the boat ashore --> *[[Songbook/Michael row the boat ashore|Michael row the boat ashore]] *: [[b:de:Liederbuch/ Michael row the boat ashore|Michael row the boat ashore]] <!-- Midnight Special --> *[[Songbook/Midnight Special|Midnight Special]] *: [[b:de:Liederbuch/ Midnight Special|Midnight Special]] <!-- Molly Malone --> *[[Songbook/Molly Malone|Molly Malone]] *: [[b:de:Liederbuch/ Molly Malone|Molly Malone]] <!-- Morgen Kinder wird's was geben --> *[[Songbook/Morgen Kinder wird's was geben|Morgen Kinder wird's was geben]] *: [[b:de:Liederbuch/ Morgen Kinder wird's was geben|Morgen Kinder wird's was geben]] <!-- Morgen kommt der Weihnachtsmann --> *[[Songbook/Morgen kommt der Weihnachtsmann|Morgen kommt der Weihnachtsmann]] *: [[b:de:Liederbuch/ Morgen kommt der Weihnachtsmann|Morgen kommt der Weihnachtsmann]] {{Todo|Surch for English versions of these songs}} <!-- Musette (J.S.Bach) --> *[[Songbook/Musette (J.S.Bach)|Musette (J.S.Bach)]] *: [[b:de:Liederbuch/ Musette von Bach|Musette von Bach]] <!-- My Bonnie Lies Over The Ocean --> *[[Songbook/My Bonnie Lies Over The Ocean|My Bonnie Lies Over The Ocean]] *: [[b:de:Liederbuch/ My Bonnie Lies Over The Ocean|My Bonnie Lies Over The Ocean]] {{Todo|Surch for double pages}} <!-- My Bonny --> *[[Songbook/My Bonny|My Bonny]] *: [[b:de:Liederbuch/ My Bonny|My Bonny]] *[[Songbook/My Bonnie Lies Over The Ocean|My Bonnie Lies Over The Ocean]] <!-- My Grandfather's Clock --> *[[Songbook/My Grandfather's Clock|My Grandfather's Clock]] *: [[b:de:Liederbuch/ My Grandfather's Clock|My Grandfather's Clock]] <!-- My Honolulu Hula Girl --> *[[Songbook/My Honolulu Hula Girl|My Honolulu Hula Girl]] *: [[b:de:Liederbuch/ My Honolulu Hula Girl|My Honolulu Hula Girl]] <!-- My Honolulu Tomboy --> *[[Songbook/My Honolulu Tomboy|My Honolulu Tomboy]] *: [[b:de:Liederbuch/ My Honolulu Tomboy|My Honolulu Tomboy]] ==== N ==== <!-- Nobody Knows The Trouble I've Seen --> *[[Songbook/Nobody Knows The Trouble I've Seen|Nobody Knows The Trouble I've Seen]] *: [[b:de:Liederbuch/ Nobody Knows The Trouble I've Seen|Nobody Knows The Trouble I've Seen]] <!-- Now the green blade rises --> *[[Songbook/Now the green blade rises|Now the green blade rises]] *: [[b:de:Liederbuch/ Now the green blade rises|Now the green blade rises]] <!-- Noël nouvelet --> *[[Songbook/ Noël nouvelet| Noël nouvelet]] *: [[b:de:Liederbuch/ Noël nouvelet| Noël nouvelet]] <!-- Nun komm, der Heiden Heiland --> *[[Songbook/Nun komm, der Heiden Heiland|Nun komm, der Heiden Heiland]] *: [[b:de:Liederbuch/ Nun komm, der Heiden Heiland|Nun komm, der Heiden Heiland]] ==== O ==== <!-- O Lamm Gottes, unschuldig --> *[[Songbook/O Lamm Gottes, unschuldig|O Lamm Gottes, unschuldig]] *: [[b:de:Liederbuch/ O Lamm Gottes, unschuldig|O Lamm Gottes, unschuldig]] <!-- O Traurigkeit --> *[[Songbook/O Traurigkeit|O Traurigkeit]] *: [[b:de:Liederbuch/ O Traurigkeit|O Traurigkeit]] <!-- O du fröhliche --> *[[Songbook/O du fröhliche|O du fröhliche]] *: [[b:de:Liederbuch/ |de:Liederbuch/ ]] <!-- Ode to Joy --> *[[Songbook/Ode to Joy| Ode to Joy]] *: [[b:de:Liederbuch/ Freude, schöner Götterfunken|Freude, schöner Götterfunken]] *[[Songbook/Ode an die Freude|Ode an die Freude]] *: [[b:de:Liederbuch/ Ode an die Freude|Ode an die Freude]] <!-- Oh Marry Don't You Weep --> *[[Songbook/Oh Marry Don't You Weep|Oh Marry Don't You Weep]] *: [[b:de:Liederbuch/ Oh Marry Don't You Weep|Oh Marry Don't You Weep]] <!-- Oh My Darling Clementine --> *[[Songbook/Oh My Darling Clementine|Oh My Darling Clementine]] {{Todo|Surch for similar pages}} *[[Songbook/Oh My Darling Clementine/Tab|Oh My Darling Clementine (Tab)]] *: [[b:de:Liederbuch/ Clementine/Tab|Clementine (Tab)]] <!-- Oh Susanna --> *[[Songbook/Oh Susanna|Oh Susanna]] *: [[b:de:Liederbuch/ Oh Susanna|Oh Susanna]] *[[Songbook/Oh Susanna/Tab|Oh Susanna (Tab)]] *: [[b:de:Liederbuch/ Oh Susanna/ Gitarrentabulatur|Oh Susanna (Tab)]] <!-- Old Folks At Home --> *[[Songbook/Old Folks At Home|Old Folks At Home]] *: [[b:de:Liederbuch/ Old Folks At Home|Old Folks At Home]] <!-- On Top Of Old Smoky --> *[[Songbook/On Top Of Old Smoky|On Top Of Old Smoky]] *: [[b:de:Liederbuch/ On Top Of Old Smoky|On Top Of Old Smoky]] <!-- Ox-Drawing-Song --> *[[Songbook/Ox-Drawing Song|Ox-Drawing Song]] ==== P ==== <!-- Plaisir d'amour --> *[[Songbook/Plaisir d'amour|Plaisir d'amour]] *: [[b:de:Liederbuch/ Plaisir d'amour|Plaisir d'amour]] <!-- Plans and wishes --> *[[Songbook/Plans and wishes|Plans and wishes]] *: [[b:de:Liederbuch/ Pläne und Wünsche|Pläne und Wünsche]] <!-- Project page --> *[[Songbook/Project page|Project page]] *: [[b:de:Liederbuch/ Projektseite|Projektseite]] <!-- Pudding auf dem Autodach --> *[[Songbook/Pudding auf dem Autodach|Pudding auf dem Autodach]] *: [[b:de:Liederbuch/ Pudding auf dem Autodach|Pudding auf dem Autodach]] ==== Q ==== *... ==== R ==== <!-- Red Is The Rose --> *[[Songbook/Red Is The Rose|Red Is The Rose]] *: [[b:de:Liederbuch/ Red Is The Rose|Red Is The Rose]] <!-- Rock My Soul --> *[[Songbook/Rock My Soul|Rock My Soul]] *: [[b:de:Liederbuch/ Rock My Soul|Rock My Soul]] <!-- Roter Mond --> *[[Songbook/Roter Mond|Roter Mond]] *: [[b:de:Liederbuch/ Roter Mond|Roter Mond]] ==== S ==== <!-- Sascha --> *[[Songbook/Sascha|Sascha]] *: [[b:de:Liederbuch/ Sascha|Sascha]] <!-- Sascha liebt nicht große Worte --> *[[Songbook/Sascha liebt nicht große Worte|Sascha liebt nicht große Worte]] *: [[b:de:Liederbuch/ Sascha liebt nicht große Worte|Sascha liebt nicht große Worte]] <!-- Scarborough Fair --> *[[Songbook/Scarborough Fair|Scarborough Fair]] *: [[b:de:Liederbuch/ Scarborough Fair|Scarborough Fair]] <!-- Schneeflöckchen, Weißröckchen --> *[[Songbook/Schneeflöckchen, Weißröckchen|Schneeflöckchen, Weißröckchen]] *: [[b:de:Liederbuch/ Schneeflöckchen, Weißröckchen|Schneeflöckchen, Weißröckchen]] <!-- She Moved Through The Fair --> *[[Songbook/She Moved Through The Fair|She Moved Through The Fair]] *: [[b:de:Liederbuch/ She Moved Through The Fair|She Moved Through The Fair]] <!-- Silent Night --> *[[Songbook/Silent Night|Silent Night]] *: [[b:de:Liederbuch/ Stille Nacht, heilige Nacht|Stille Nacht, heilige Nacht]] <!-- Sloop John B --> *[[Songbook/Sloop John B|Sloop John B]] *: [[b:de:Liederbuch/ Sloop John B|Sloop John B]] <!-- Sloop John B. --> *[[Songbook/Sloop John B.|Sloop John B.]] *: [[b:de:Liederbuch/ Sloop John B.|Sloop John B.]] <!-- Spancil Hill --> *[[Songbook/Spancil Hill|Spancil Hill]] *: [[b:de:Liederbuch/ Spancil Hill|Spancil Hill]] <!-- Spanish Romance --> *[[Songbook/Spanish Romance|Spanish Romance]] *: [[b:de:Liederbuch/ Spanische Romanze|Spanische Romanze]] <!-- Spanish Lady --> *[[Songbook/Spanish Lady|Spanish Lady]] *: [[b:de:Liederbuch/ Spanish Lady|Spanish Lady]] <!-- Star Of The County Down --> *[[Songbook/Star Of The County Down|Star Of The County Down]] *: [[b:de:Liederbuch/ Star Of The County Down|Star Of The County Down]] <!-- Swing low, sweet chariot --> *[[Songbook/Swing low, sweet chariot|Swing low, sweet chariot]] *: [[b:de:Liederbuch/ Swing low, sweet chariot|Swing low, sweet chariot]] ==== T ==== <!--The Cat Came Back --> *[[Songbook/The Cat Came Back|The Cat Came Back]] *: [[b:de:Liederbuch/ The Cat Came Back|The Cat Came Back]] <!-- The Cockoo --> *[[Songbook/The Cockoo|The Cockoo]] <!-- The Green Piece Of Planet Earth by MATTHIAS EBERTZ --> *[[Songbook/The Green Piece Of Planet Earth by MATTHIAS EBERTZ|The Green Piece Of Planet Earth by MATTHIAS EBERTZ]] *: [[b:de:Liederbuch/ The Green Piece Of Planet Earth by MATTHIAS EBERTZ|The Green Piece Of Planet Earth by MATTHIAS EBERTZ]] <!-- The Irish Rover --> *[[Songbook/The Irish Rover|The Irish Rover]] *: [[b:de:Liederbuch/ The Irish Rover|The Irish Rover]] <!-- The Raggle Taggle Gypsies --> *[[Songbook/The Raggle Taggle Gypsies|The Raggle Taggle Gypsies]] *: [[b:de:Liederbuch/ The Raggle Taggle Gypsies|The Raggle Taggle Gypsies]] <!-- The Shores of Botany Bay --> *[[Songbook/The Shores of Botany Bay|The Shores of Botany Bay]] *: [[b:de:Liederbuch/ The Shores of Botany Bay|The Shores of Botany Bay]] <!-- The Skye Boat Song --> *[[Songbook/The Skye Boat Song|The Skye Boat Song]] *: [[b:de:Liederbuch/ The Skye Boat Song|The Skye Boat Song]] <!-- The Water Is Wide --> *[[Songbook/The Water Is Wide|The Water Is Wide]] *: [[b:de:Liederbuch/ The Water Is Wide|The Water Is Wide]] <!-- Wild Rover --> *[[Songbook/The Wild Rover|Wild Rover]] *: [[b:de:Liederbuch/ Wild Rover|Wild Rover]] <!-- Things About Coming My Way --> *[[Songbook/Things About Coming My Way|Things About Coming My Way]] *: [[b:de:Liederbuch/ Things About Coming My Way|Things About Coming My Way]] <!-- Tom Dooley --> *[[Songbook/Tom Dooley|Tom Dooley]] *: [[b:de:Liederbuch/ Tom Dooley|Tom Dooley]] <!-- Tourdion --> *[[Songbook/Tourdion|Tourdion]] *: [[b:de:Liederbuch/ Tourdion|Tourdion]] <!-- Twinkle, Twinkle, Little Star --> *[[Songbook/Twinkle, Twinkle, Little Star|Twinkle, Twinkle, Little Star]] *: [[b:de:Liederbuch/ Twinkle, Twinkle, Little Sta|Twinkle, Twinkle, Little Sta]] ==== V ==== <!-- Victimae paschali laudes --> *[[Songbook/Victimae paschali laudes|Victimae paschali laudes]] *: [[b:de:Liederbuch/ Victimae paschali laudes|Victimae paschali laudes]] <!-- Von guten Mächten --> *[[Songbook/Von guten Mächten|Von guten Mächten]] *: [[b:de:Liederbuch/ Von guten Mächten|Von guten Mächten]] <!-- Template:Categories --> *[[Songbook/Template:Categories|Template:Categories]] *: [[b:de:Liederbuch/ Vorlage:Kategorien|Vorlage:Kategorien]] <!-- Template:Song header --> *[[Songbook/Template:Song header|Template:Song header]] *: [[b:de:Liederbuch/ Vorlage:Liedheader|Vorlage:Liedheader]] <!-- Template:Cross-reference --> Liederbuch/ *[[Songbook/Template:Cross-reference|Template:Cross-reference]] *: [[b:de:Liederbuch/ Vorlage:Querverweis|Vorlage:Querverweis]] ==== W ==== <!-- Wade In The Water --> *[[Songbook/Wade In The Water|Wade In The Water]] <!-- What shall we do with the drunken sailor --> *[[Songbook/What shall we do with the drunken sailor|What shall we do with the drunken sailor]] <!-- Whiskey in the Jar --> *[[Songbook/Whiskey in the Jar|Whiskey in the Jar]] <!-- Wild Rover --> *[[Songbook/Wild Rover|The Wild Rover]] *[[Songbook/Wildwood Flower|Wildwood Flower]] <!-- Wade In The Water --> *[[Songbook/Wade In The Water|Wade In The Water]] *: [[b:de:Liederbuch/ Wade In The Water|Wade In The Water]] <!-- Wayfaring Stranger --> *[[Songbook/Wayfaring Stranger|Wayfaring Stranger]] *: [[b:de:Liederbuch/ Wayfaring Stranger|Wayfaring Stranger]] <!-- We shall overcome --> *[[Songbook/We shall overcome|We shall overcome]] *: [[b:de:Liederbuch/ We shall overcome|We shall overcome]] <!-- Weißt du wieviel Sternlein stehen --> *[[Songbook/Weißt du wieviel Sternlein stehen|Weißt du wieviel Sternlein stehen]] *: [[b:de:Liederbuch/ Weißt du wieviel Sternlein stehen|Weißt du wieviel Sternlein stehen]] <!-- Wellerman --> *[[Songbook/Wellerman|Wellerman]] *: [[b:de:Liederbuch/ Wellerman|Wellerman]] <!-- What shall we do with the drunken sailor --> *[[Songbook/What shall we do with the drunken sailor|What shall we do with the drunken sailor]] *: [[b:de:Liederbuch/ What shall we do with the drunken sailor|What shall we do with the drunken sailor]] <!-- Whiskey in the Jar --> *[[Songbook/Whiskey in the Jar|Whiskey in the Jar]] *: [[b:de:Liederbuch/ Whiskey in the Jar|Whiskey in the Jar]] <!-- Wildwood Flower --> *[[Songbook/Wildwood Flower|Wildwood Flower]] *: [[b:de:Liederbuch/ Wildwood Flower|Wildwood Flower]] <!-- Will the Circle be Unbroken --> *[[Songbook/Will the Circle be Unbroken|Will the Circle be Unbroken]] *: [[b:de:Liederbuch/ Will the Circle be Unbroken|Will the Circle be Unbroken]] ==== X ==== *... ==== Y ==== *... ==== Z ==== </div> 7ral3lzw1sddpdil3dbu9j6wwfxsj6d Songbook/Auld Lang Syne 0 206874 4668482 4631700 2026-09-03T20:05:43Z Ashaio 155977 translation in score header 4668482 wikitext text/x-wiki {{:songbook/template:songheader|type=Scottish tratitional|alternative=Should auld acquaintance |arranger=Mjchael}} :[[Image:Auld Lang Syne.jpg]] <score raw = "1" vorbis = "1"> \version "2.12.3" \language "deutsch" \header { tagline = "" } \layout { indent = #0 } akkorde = \chordmode { \set chordChanges = ##t s4 f2 d:m g:m c:7 f f:7 b1*3/4 s4 f2 d:m g:m c:7 d:m b4 c:7 f1*3/4 s4 f2 d:m g:m c:7 f f:7 b1*3/4 s4 f2 d:m g:m c:7 d:m b4 c:7 f b f } global = { \autoBeamOff \tempo 4. = 55 \key f \major \time 4/4 } melodie = \relative c' { \global \partial 4 c4 | f4. f8 f4 a4 | g4. f8 g4 a4 | f4. f8 a4 c4 | d2. d4 | c4. a8 a4 f4 | g4. f8 g4 a4 | f4. d8 d4 c4 | f2. d'4 | c4.( a8) a4( f4) | g4. f8 g4 d'4 | c4.( a8) a4( c4) | d2. d4 | c4. a8 a4 f4 | g4. f8 g4 a4 | f4.( d8) d4( c4) | f1 \bar "|." \bar "|." } text = \lyricmode { Should auld ac -- quain -- tance be for -- got, and ne -- ver brought to mind? Should auld ac -- quain -- tance be for -- got, and days o' la -- ng syne? For auld lang syne, my dear, For auld lang syne, We'll tak' a cup o' kind -- ness yet, For auld lang syne. } \score { << \new ChordNames { \akkorde } \new Voice = "Lied" { \melodie } \new Lyrics \lyricsto "Lied" { \text } >> \midi {} \layout {} } </score> Source: Melody from [[w:Auld_Lang_Syne#Melody]], chords from [[:File:Auld_Lang_Syne.jpg]], text from [[w:Auld_Lang_Syne#Lyrics]]. <score raw=1 vorbis=1> \version "2.20.0" \header{ title = "Auld Lang Syne" poet = "Lyrics: traditional" composer = "Music: traditional" arranger = "Arranged by: Ludwig van Beethoven" tagline = "" } vox = \new Staff \with { midiInstrument = #"french horn" } { \new Voice = "mel" { % \set Staff.midiInstrument = #"fiddle" \autoBeamOff \relative c' { \clef treble \key f \major \time 2/4 % melody \partial 8 {r8} | r2 | r2 | r2 | r2 | r2 | r2 | r4 r8 c8 | \repeat volta 3 { f8. f16 f8 a | g8. f16 g8 r16 a | f16 f8. a8 c | d4. \afterGrace f8 {f16} | c8. a16 a8 f | g8. f16 g8 r16 a | f8. d16 d8 c | f4. r8 | r2 | r4. {d'8} | c16[ a8.] a8.[ f16] | g8. f16 g8 r16 a | bes16[ a8.] a8[ c] | d4. f8 | c8. a16 a8 f | g8. f16 g8 r16 a | f8.[ d16] d8.[ c16] | f4. r8 | r2 | r2 | r2 | } \alternative { { r4 r8 c8 | } { r2 | r2 | r2 | r2 | r2 | r2 | r2 | r2 | r2 } } } } } \addlyrics { \small { % lyrics Should auld ac -- quain -- tance be for -- get and ne -- ver brought to mind? Should auld ac -- quain -- tance be for -- get and days o' la -- ng syne? For auld lang syne, my dear, For auld lang syne, We'll tak a cup o’ kind -- ness yet, For auld lang syne. } } RH = \new Staff = "RH" \relative c'' { \clef treble \key f \major \time 2/4 % 'right hand' piano score \partial 8 { <a c>8 } | <a f'>8.[ <a f'>16 <a f'>8] <f' a>8 | <f bes>8.[ <f a>16 <f bes>8 <f d'>8] | <f c'>8.[ <f c'>16 <f c'>8 <a f'>8 | <f a>8.[ <f a>16 <f a>8] a,8 | <c, g'>8.[ <c g'>16] r4 | <c g'>8.[ <c g'>16] r4 | <e c'>8.[ <e c'>16] f8[ <a c>] | \repeat volta 3 { <a f'>8 r8 <a f'>8[ <c a'>] | <bes g'>8 r8 <bes g'>8 r8 | <a f'>8 r8 <f' a>8[ <a c>] | <bes d>4. <d f>8 | <a c>8 r8 <f a>8[ <a, f'>] | <bes g'>8 r8 <bes g'> r8 | <a f'>8.[ <bes d>16] <bes d>8[ <a c>] | <a f'>4( <a f>16)[ c d e] | f8.[ d16] d8\staccato[ c\staccato ] | d8\staccato[ c\staccato d\staccato] <bes' d>8 | <a c>8 r <c, a'> r | <c g'> r <c g'> r | <c bes'> r <c a'>8.[ <a c>16] | <bes d>4 bes16[ c d <d f>] | <a c>8[ <f a> <f a> <a, f'>] | <bes g'>8 r <bes g'> r | <a f'> r <bes d>8.[ <a c>16] | <a f'>4. d16[ e] | %--- f16[ d8.] d8.[ c16] | f8.[ e16] a8.[ g16] | <c f>8.[ <c e>16] <c a'>8.[ <c g'>16] | } \alternative { { r16 g'16[ e c] bes[ a c bes] | } { <c f>8.[ <c f>16 <c f>8] <c a'>8 | <c g'>8.[ <c g'>16 <c g'>8] <g' bes>8 | <f a>8.[ <e g>16 <f a>8] <f bes d>8 \fermata | bes,8.[ g16] g8[ e] | r16 c[ e g] e[ g b c] | r16 f,[ a c] a[ c e f] | r16 e[ g bes] <bes e>8[ <a f'>] | <a f'>16[ <a f'>8.] <bes d>8.[ <a c>16] | <a f'>4. \fermata \bar "|." } } % of alternative } LH = \new Staff = "LH" %\relative c { { \clef bass \key f \major \time 2/4 % 'left hand' piano score \partial 8 { <f, f>8 } | <f, f>8.[ <f, f>16 <f, f>8] <f, f>8 | <d, d>8.[ <c, c>16 <d, d>8 <bes,, bes,>8 ] | <a,, a,>8.[ <a,, a,>16 <a,, a,>8] <f,, f,>8 | <c, c>8.[ <c, c>16 <c, c>8] r8 | r4 <c g>8.[ <c g>16] | r4 <c g>8.[ <c g>16] | r8. <c g>16 <f a>8[ f] | \repeat volta 3 { <f, f>8 r8 <f, f>8[ <f, f> ] <c, c>8 r8 <c, c>8 r8 | <f, f>8 r8 <f, f>8[ <f, f> ] <bes,, bes,>4. <bes,, bes,>8 | <c, c>8 r8 <c, c>8[ <c, c>] | <c, c>8 r8 <c, c>8 r8 | <f, f>8.[ <bes,, bes,>16] <bes,, bes,>8[ <f, f>] | <f, f>4. r8 \clef treble r8. bes'16 bes'8\staccato[ a'\staccato] | bes'8\staccato[ a'\staccato bes'\staccato ] % --- \clef bass <bes, bes>8 | <f, f>8 r <f, f> r | <e, e> r <e, e> r | <g, g>8 r <f, f>8.[ <f, f>16] | <bes, f>4 r8 <bes, bes>8 | <c c'>8[ <c c'> <c c'> <c c'>] | <c, c>8 r <c, c> r | <d, d> r <bes,, bes,>8.[ <f, f>16] | f4. r8 | % --- r8 bes,8[ b, c] | d[ c] f[ e] | g[ f] \clef treble c' bes' | } \alternative { { r2 } { a'8.[ a'16 a'8] f' | c'8.[ c'16 c'8] c'8 \clef bass | d'8.[ <d d'>16 <d d'>8] <bes, bes>8 \fermata | r2 | bes8.[ g16] g8[ e] | c8.[ a,16] a,8[ f,] | c8.[ <c g>16] <c g>8[ <f, f>] | <d, d>8[ <des, des>] <bes,, bes,>8.[ <f, f>16] | <f, f>4. \fermata \bar "|." } } % of alternative } music = << \vox \new PianoStaff << \RH \LH >> >> \score{ \music \layout{} } \score{ \unfoldRepeats \music \midi{} } </score> Source: Ludwig van Beethoven, [https://imslp.org/wiki/12_Scottish_Songs%2C_WoO_156_(Beethoven%2C_Ludwig_van) ''12 Scottish Songs, WoO 156'', song 11], Leipzig: Breitkopf und Härtel, n.d.[n.d.[1865]]. Plate B.260. :[[Image:Crd_C.svg |100px]] [[Image:Crd_F_ZMR.svg|100px]] [[Image:Crd_G.svg|100px]][[Image:Crd_Am.svg|100px]] ;verse 1 :Should {{crd|C}} auld acquaintance {{crd|G}} be forgot<br /> :And {{crd|C}} never brought to {{crd|F}} mind?<br /> :Should {{crd|C}} auld acquaintance {{crd|G}} be forgot <br /> :And {{crd|(C}} days o’ {{crd|Am)}} lang {{crd|C}} syne? <br /> :;chorus ::{{crd|'F'}} For {{crd|C}} auld lang {{crd|G}} syne, my dear ::{{crd|'F'}} For {{crd|C}} auld lang {{crd|F}} syne ::We'll {{crd|C}} take a cup o'{{crd|G}} kindness yet ::For {{crd|(C}} auld {{crd|Am)}} lang {{crd|C}} syne ;verse 2 :We {{crd|C}} twa hae run a- {{crd|G}} bout the braes :And {{crd|C}} pou'd the gowans {{crd|F}} fine :But we've {{crd|C}}wander'd mony a {{crd|G}} weary fitt :Sin' {{crd|(C}} auld {{crd|Am)}} lang {{crd|C)}} syne. :;chorus ;verse 3 :We {{crd|C}} twa hae paidl'd {{crd|G}} in the burn :Frae {{crd|C}} morning sun till {{crd|F}} dine :But {{crd|C}} seas between us {{crd|G}} braid hae roar'd :Sin' {{crd|(C}} auld {{crd|Am)}} lang {{crd|C)}} syne. :;chorus ;verse 4 :And {{crd|C}} there's a hand, my {{crd|G}} trusty feire ( = frend) :And {{crd|C}} gie's a hand o' {{crd|F}} thine :And {{crd|C}} we'll tak a {{crd|G}} right gude ( or: willie waught :For {{crd|(C}} auld {{crd|Am)}} lang {{crd|C)}} syne. :;chorus ;verse 5 :And {{crd|C}} surely ye'll be your {{crd|G}} pint-stowp :And {{crd|C}} surely I'll be {{crd|F}} mine :And {{crd|C}} we'll tak a cup o'{{crd|G}} kindness yet :For {{crd|(C}} auld {{crd|Am)}}lang {{crd|C)}} syne. == Annotation == C F | C 1 . 2 u . u 4 . | 1 . 2 u . u 4 Should | auld acquaintance <noinclude> {{BookCat}} [[{{BOOKCATEGORY}}/Songs|Auld Lang Syne]] [[{{BOOKCATEGORY}}/Songs in English|Auld Lang Syne]] [[{{BOOKCATEGORY}}/Folk-Songs|Auld Lang Syne]] </noinclude> 80qi12gtien1wqu9410c4eh2xgpy4um Vehicle Identification Numbers (VIN codes)/Hyundai/VIN Codes 0 209425 4668436 4628985 2026-09-03T17:37:50Z JustTheFacts33 3434282 /* Engine Type (position 8) */ 4668436 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== *A = i10, Grand i10, Xcent *B = Sonata 1989-1994, Grand i10, Aura, i20, Casper, Bayon *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, HB20, Creta *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, i30 (FD & GD) *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), H100 - *G = Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, i30 (PD), Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), i40, Elantra 2021-, Cantus 16 - *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = Pony, Matrix, ix20, Creta, Grand Creta, Santa Fe 2024- *R = Venue, Palisade *S = Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022, Nexo 2026- *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, HR truck ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 26- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *7 = Hydrogen Fuel cell, 201 hp motor, Nexo 26- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} 8juzrsicay9sgopzv0odvzb1wgelild 4668438 4668436 2026-09-03T17:43:55Z JustTheFacts33 3434282 /* Body Type or Trim Level (position 5) */ 4668438 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== *A = i10, Grand i10, Xcent *B = Sonata 1989-1994, Grand i10, Aura, i20, Casper, Bayon *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, HB20, Creta *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, i30 (FD & GD) *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), H100 - *G = Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, i30 (PD), Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), i40, Elantra 2021-, Cantus 16 - *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = Pony, Matrix, ix20, Creta, Grand Creta, Santa Fe 2024- *R = Venue, Palisade *S = Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022, Nexo 2026- *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, HR truck ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *7 = Hydrogen Fuel cell, 201 hp motor, Nexo 26- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} tmmfxtzoqqhwmf41oce7uj76prc1ngk 4668439 4668438 2026-09-03T18:01:54Z JustTheFacts33 3434282 /* Engine Type (position 8) */ 4668439 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== *A = i10, Grand i10, Xcent *B = Sonata 1989-1994, Grand i10, Aura, i20, Casper, Bayon *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, HB20, Creta *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, i30 (FD & GD) *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), H100 - *G = Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, i30 (PD), Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), i40, Elantra 2021-, Cantus 16 - *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = Pony, Matrix, ix20, Creta, Grand Creta, Santa Fe 2024- *R = Venue, Palisade *S = Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022, Nexo 2026- *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, HR truck ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} q9tqnjrn7zeq0tw9m73vp8gsjynmnwr 4668440 4668439 2026-09-03T18:05:59Z JustTheFacts33 3434282 /* Model Line and Drive Type (position 4) */ 4668440 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== *A = i10, Grand i10, Xcent *B = Sonata 1989-1994, Grand i10, Aura, i20, Casper, Bayon *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, HB20, Creta *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, i30 (FD & GD) *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), H100 - *G = Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, i30 (PD), Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), i40, Elantra 2021-, Cantus 16 - *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = Pony, Matrix, ix20, Creta, Grand Creta, Santa Fe 2024- *R = Venue, Palisade *S = Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022 *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, HR truck ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} iluufh9qaogw75syue1hcog38fwfvd9 4668444 4668440 2026-09-03T19:07:59Z JustTheFacts33 3434282 /* Model Line and Drive Type (position 4) */ 4668444 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== Models in Italic are not sold in US or Canada. Models in Bold are sold in Canada but not in the US. *A = ''i10'', ''Grand i10'', ''Xcent'' *B = Sonata 1989-1994, ''Grand i10'', ''Aura'', ''i20'', ''Casper'', ''Bayon'' *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, ''HB20'' *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, ''i30 (FD & GD)'' *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), ''H100'' *G = ''Creta'', Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, ''i30 (PD)'', Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), ''i40'', Elantra 2021-, ''Cantus 16 -'' *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = '''Pony''', ''Matrix'', ''ix20'', ''Creta'', ''Grand Creta'', Santa Fe 2024- *R = Venue, Palisade *S = '''Stellar''', Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022 *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, ''HR truck'' ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} einwt7q0wjedc4prtc259ap26u7lh1z 4668465 4668444 2026-09-03T19:41:56Z JustTheFacts33 3434282 /* Hyundai WMIs (positions 1-3) */ 4668465 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMH = Mitsubishi Precis made by Hyundai South Korea ('87 - 3/10/88) (passenger vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) (Hyundai Galloper) * KMY = Hyundai South Korea (no longer used) (Hyundai Santamo) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== Models in Italic are not sold in US or Canada. Models in Bold are sold in Canada but not in the US. *A = ''i10'', ''Grand i10'', ''Xcent'' *B = Sonata 1989-1994, ''Grand i10'', ''Aura'', ''i20'', ''Casper'', ''Bayon'' *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, ''HB20'' *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, ''i30 (FD & GD)'' *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), ''H100'' *G = ''Creta'', Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, ''i30 (PD)'', Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), ''i40'', Elantra 2021-, ''Cantus 16 -'' *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = '''Pony''', ''Matrix'', ''ix20'', ''Creta'', ''Grand Creta'', Santa Fe 2024- *R = Venue, Palisade *S = '''Stellar''', Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022 *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, ''HR truck'' ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} i2drgqybkzzx1kziz2totu1vvbosdqd 4668486 4668465 2026-09-03T20:37:18Z JustTheFacts33 3434282 /* Model Line and Drive Type (position 4) */ 4668486 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMH = Mitsubishi Precis made by Hyundai South Korea ('87 - 3/10/88) (passenger vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) (Hyundai Galloper) * KMY = Hyundai South Korea (no longer used) (Hyundai Santamo) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== Models in Italic are not sold in US or Canada. Models in Bold are sold in Canada but not in the US. *A = ''i10'', ''Grand i10'', ''Xcent'' *B = Sonata 1989-1994, ''Grand i10'', ''Aura'', ''i20'', ''Casper'', ''Bayon'' *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, ''HB20'' *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, ''i30 (FD & GD)'' *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), ''H100'' *G = ''Creta (GS)'', Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, ''i30 (PD)'', Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), ''i40'', Elantra 2021-, ''Cantus 16 -'' *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = '''Pony''', ''Matrix'', ''ix20'', ''Creta (SU2)'', ''Grand Creta'', Santa Fe 2024- *R = Venue, Palisade *S = '''Stellar''', Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022 *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, ''HR truck'' ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} pdwuhry8wlrkdcpbe8iiqfqm0joviig 4668545 4668486 2026-09-04T10:19:48Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668545 wikitext text/x-wiki == Hyundai's VIN format == For Model Years 1986 and above <br /> {| class="wikitable" !Position !Sample !colspan="2"|Description |- |1 |K |rowspan="3"|[[#Hyundai WMIs (positions 1-3)|WMI]] |[[#Geographic zone|Geographic zone]] |- |2 |M |[[#Manufacturer|Manufacturer]] |- |3 |H |[[#Vehicle Type|Vehicle Type]] |- |4 |D |rowspan="6"|[[#Vehicle Descriptor Section|VDS]] |[[#Model Line and Drive Type (position 4)|Model Line and Drive Type]] |- |5 |H |[[#Body Type or Trim Level (position 5)|Body Type or Trim Level]] |- |6 |4 |[[#Trim Level or Body Type (position 6)|Trim Level or Body Type]] |- |7 |5 |[[#Restraint System or GVWR (position 7)|Restraint System or GVWR]] |- |8 |A |[[#Engine Type (position 8)|Engine Type]] |- |9 |1 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check Digit]] |- |10 |2 |rowspan="8"|[[#Vehicle Indicator Section|VIS]] |[[Vehicle Identification Numbers (VIN codes)/Model year|Model Year]] |- |11 |U |[[#Manufacturing Plant Code (position 11)|Manufacturing Plant Code]] |- |12 |0 |rowspan=6|Serial Number |- |13 |4 |- |14 |8 |- |15 |4 |- |16 |4 |- |17 |7 |- |} ==Hyundai WMIs (positions 1-3) == * AC5 = Hyundai Automotive South Africa (cars) * KMC = Hyundai South Korea (commercial vehicle) * KME = Hyundai South Korea (commercial vehicle - semi-tractor truck) * KMF = Hyundai South Korea (commercial vehicle) * KMH = Hyundai South Korea (passenger & multi-purpose vehicle) * KMH = Mitsubishi Precis made by Hyundai South Korea ('87 - 3/10/88) (passenger vehicle) * KMJ = Hyundai South Korea (bus & minibus) * KMT = Genesis Motors South Korea (passenger vehicle) * KMU = Genesis Motors South Korea (multi-purpose passenger vehicle) * KMX = Hyundai South Korea (no longer used) (Hyundai Galloper) * KMY = Hyundai South Korea (no longer used) (Hyundai Santamo) * KMZ = Hyundai South Korea (no longer used) * KM8 = Hyundai South Korea (multi-purpose passenger vehicle, for North America) * KND = Hyundai (multi-purpose vehicle made by Kia South Korea) * KPH = Mitsubishi Precis made by Hyundai South Korea (3/11/88 - '94) (passenger vehicle) * LBE = Beijing Hyundai Automotive Co Ltd. * MAL = Hyundai Motors India Ltd. * MB2 = Hyundai Motors India Ltd. (multi-purpose vehicle) * MF3 = Hyundai Motor Indonesia (HMID) * NLH = Hyundai Assan (passenger cars, SUV) (Turkey) * NLJ = Hyundai Assan (minibus, van) (Turkey) * PFD = Hyundai Motor Group Innovation Center in Singapore (HMGICS) (multi-purpose passenger vehicle) * TMA = Hyundai Motor Manufacturing Czech * TMC = Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia (ix35 only) * X7M = Hyundai made by TagAz (Russia) * XWE = Hyundai made by Avtotor (Russia) * Y6L = Hyundai made by Bogdan (Ukraine) * Z94 = Hyundai Motor Manufacturing Rus (Russia) * 2HM = Hyundai Auto Canada (Passenger Vehicle) * 3KM = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 3KP = Hyundai (Passenger Vehicle made by Kia Motor Manufacturing Mexico) * 5NM = Hyundai Motor Manufacturing Alabama (Hyundai & Genesis Multi-Purpose Passenger Vehicle) * 5NP = Hyundai Motor Manufacturing Alabama (Hyundai Passenger Vehicle) * 5NT = Hyundai Motor Manufacturing Alabama (Hyundai Truck) * 5XY = Hyundai (Multi-Purpose Passenger Vehicle made by Kia Motor Manufacturing Georgia) * 7YA = Hyundai (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Hyundai made by Aymesa in Ecuador * 95P = Caoa Montadora de Veículos SA (Tucson, ix35, & HR truck) (Brazil) * 9BH = Hyundai Motor Brasil (HB20 & Creta) ===Geographic Zone (position 1)=== * AA-AH = South Africa * K = South Korea * L = China * MA-ME, MY-M0 = India * MF-MK = Indonesia * NL-NR = Turkey * TJ-TP = Czech Republic * U5-U7 = Slovakia * XS-XW, Z6-Z0 = Russia * 2 = Canada * 3 = Mexico * 5 = USA * 7 = USA * 8L-8R = Ecuador * 9A-9E, 93–99 = Brazil ===Manufacturer (position 2)=== * A = HMI (Hyundai Motor India) * B = Hyundai Motor Brasil * B = Beijing Hyundai Automotive Co Ltd. * C = Cars (Roslyn, South Africa) * D = SUV's (Roslyn, South Africa) * E = HME (Hyundai Motor Egypt) * F = Hyundai Motor Indonesia (HMID) * H = Bromont Assembly Plant, Hyundai Auto Canada * K = Kia Motor Manufacturing Mexico * L = HAOS (Hyundai Assan Otomotiv Sanayi), Turkey * L = Aymesa * M = HMC (Hyundai Motor Company), South Korea * M = Hyundai Motor Manufacturing Czech * N = Hyundai Motor Manufacturing Alabama * N = Kia, South Korea * X = Kia Motor Manufacturing Georgia * Y = Hyundai Motor Group Metaplant America * 5 = Caoa Montadora de Veículos SA, Anapolis/GO, Brazil * 5 = Kia Motors Slovakia * 9 = Hyundai Motor Manufacturing Rus ===Vehicle Type (position 3)=== * A = Passenger Car * A = MPV (Multi-Purpose Vehicle) (Hyundai Motor Group Metaplant America) * B = Trailer * C = Special car * D = Recreational * D = Hyundai Motor Group Innovation Center in Singapore * E = Tractor * F = Truck, van * H = Passenger car, MPV, RV * J = Minibus, bus, semi-MPV * L = Light Motor Vehicle (Car) * M = Passenger car (Hyundai Auto Canada) * M = MPV (Multi-Purpose Vehicle) (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * N = Truck, bus, van * P = Hyundai made by Caoa Montadora (Tucson, ix35, & HR truck) * P = Passenger car (Hyundai Motor Manufacturing Alabama & Kia Motor Manufacturing Mexico) * T = Truck (Hyundai Motor Manufacturing Alabama) * T = Genesis Passenger car * U = Genesis MPV (Multi-Purpose Vehicle) * X = Passenger car, MPV, RV * Y = MPV (Multi-Purpose Vehicle) (Kia Motor Manufacturing Georgia) * Z = Truck, van * 3 = Semi-Trailer * 3 = Hyundai Motor Indonesia * 4 = Hyundai Motor Manufacturing Rus * 5 * 8 = MPV (Multi-Purpose Vehicle) ==Vehicle Descriptor Section== ===Model Line and Drive Type (position 4)=== Models in Italic are not sold in US or Canada. Models in Bold are sold in Canada but not in the US. *A = ''i10'', ''Grand i10'', ''Xcent'' *B = Sonata 1989-1994, ''Grand i10'', ''Aura'', ''i20'', ''Casper'', ''Bayon'' *C = Sonata 1995-1998, Accent 2000-2022, Ioniq 2017-2022, ''HB20'' *D = Elantra 2001-2020, Elantra Touring 2009-2012, Elantra GT 2013-2017, ''i30 (FD & GD)'' *E = Sonata 2006-2022 (US built), Sonata 2006-2019 (Korean built) *F = XG300, XG350, Azera 2006-2017, Genesis G80 2019-2020 (KMT), Genesis G90 2019- (KMT), ''H100'' *G = ''Creta (GS)'', Genesis sedan 2009–2016, Equus 2011-2016, Genesis G80 2017-2019 (KMH), Genesis G90 2017-2019 (KMH), Genesis G70 2019-, Genesis G80 2021- *H = Tiburon 2003-2008, Genesis Coupe 2010-2016, ''i30 (PD)'', Elantra GT 2018-2020, Kona 2024-, Genesis GV80 2021- *J = Elantra 1992-2000, Tiburon 1997-2001, Tucson 2005-, Santa Cruz 2022-, Nexo 2019-2023, Genesis GV80 Coupe 2025- *K = Kona 2018-2023, Ioniq 5 2022-, Genesis GV60 *L = Excel 1986-1989, Mitsubishi Precis 1987-1989, Sonata 2020- (Korean built), ''i40'', Elantra 2021-, ''Cantus 16 -'' *M = Entourage, Ioniq 6, Ioniq 9, Genesis GV70 *N = Veracruz 2007–2012 *P = '''Pony''', ''Matrix'', ''ix20'', ''Creta (SU2)'', ''Grand Creta'', Santa Fe 2024- *R = Venue, Palisade *S = '''Stellar''', Santa Fe 2001-2010, Santa Fe LWB (XL) 2013-2019, Santa Fe 2019-2023 *T = Veloster 2012-2022 *V = Excel, Mitsubishi Precis 1990-1994, Accent 1995-1999, Scoupe *W = Sonata 1999-2005 *Z = Santa Fe 2011–2012, Santa Fe Sport 2013-2018, ''HR truck'' ===Body Type or Trim Level (position 5) === Body Type (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *A = 5-door hatchback *D = 3-door hatchback *E = 2-door sedan (Scoupe) *F = 4-door sedan *G = 2-door coupe (97-01 Tiburon) *W = 5-door station wagon (96-00 Elantra wagon) Trim Level (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later models) *B = GL Santa Fe, 01 – 04; 3.8L Genesis, 09 –; Genesis G90 3.5T 23-; Ioniq 5 Robotaxi *C = GLS Santa Fe, 01 – 06; Limited Santa Fe, 06; SE Azera, 06 – 07; Limited Azera, 06 –; GLS Azera, 07 –; SE Entourage, 07; GLS or Limited Entourage, 07 –; 4.6L Genesis, 09 –; Elantra Touring, 09 –, Base Veloster, 12-; Genesis G90 3.5T e-SC 23- *D = Genesis G90 3.5T e-SC Prestige Black 26- *F = Base or L Accent, 00 – 04 *G = GL or GS Accent, 00 – 04; GT Accent, 03 – 05; GLS Accent, 05; = GLS Santa Fe, 07 – *H = SE or Limited Santa Fe, 07 *M = GL (Base) Tiburon, 03 – 04; GS Tiburon, 05 – 08; GL Tucson, 05 – 06; GLS Tucson, 07 –; GS Accent, 07 – *N = GLS Accent, 06 –; SE Accent, 07 –; GLS or GT Elantra, 01 – 06; Limited Elantra, 06; GLS Tucson, 05 – 06; LX Tucson, 05; Limited Tucson, 06 –; SE Tucson 07 –; Limited V6 Tucson, 08 –; GT Tiburon, 03 – 08; SE Tiburon, 05 – 08; GT Limited Tiburon, 06 – 08; Ioniq 5 N 25- *T = GL Sonata, 06; GLS Sonata, 07 – *U = GLS (Base or L) XG300, 01; XG350, 02 – 05; GLS or LX Sonata, 06; Limited Sonata, 06 –; SE Sonata, 07 –; Limited Elantra, 07; GLS or SE Elantra, 07 –; GLS, Limited Veracruz, 07 –; SE, Veracruz, 07 *1 = SE Standard Range Ioniq 6, 23-25 *2 = SE Ioniq 6, 23-25 *3 = SEL Ioniq 6, 23-25, Ioniq 6 N 27- *5 = Limited Ioniq 6, 23-25 Other *2 = SE *3 = Limited edition ===Trim Level or Body Type (position 6)=== Trim Level (86-00 Models except 00 Accent; plus 01-05 Sonata & 01 Tiburon) *1 = base (including base model Mitsubishi Precis) *2 = GL, Mitsubishi Precis RS *3 = GLS, LS, LX, or GS, Mitsubishi Precis LS Body Type (00 Accent, all 01-09 Models except 01-05 Sonata & 01 Tiburon, all 2010 and later passenger cars excluding all SUVs and pickups 2010 and later) *1 = wagon FWD (Santa Fe, Tucson, Veracruz) *2 = Minivan - Extended length (Entourage) *3 = 3-door hatchback *4 = 4-door sedan *5 = 5-door hatchback (Elantra 5-door 01-06, Elantra GT 13-20, Accent 5-door, Ioniq 17-22) *6 = Coupe (Tiburon 03-08, Genesis Coupe, Elantra Coupe 13-14, Veloster) *7 = wagon AWD (Santa Fe, Tucson, Veracruz) *8 = Station wagon (Elantra Touring 09-12) *8 = Wagon (Venue) Other *5 = New Tucson GL ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle or Truck (position 6) 2010-=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon or Pickup (Double cab) 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon or Pickup (Double cab) 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== Restraint System (Passenger) *1 = Active 3-point *2 = Passive *3 = Driver-side airbag (manual belt) passenger-side passive *4 = Dual airbags (manual belts) *5 = Depowered airbags *6 = Advanced airbags or depowered airbags with suppression Restraint System (Passenger & Multi-Purpose Vehicle) *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags [Hydraulic Brakes] *G = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (Ioniq 9) *T = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag GVWR (Multi-Purpose Vehicle) *2 = GVWR Class C (4,001-5,000 lbs) *3 = GVWR Class D (5,001-6,000 lbs) ===Engine Type (position 8)=== *1 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6Ah/1.62 kWh Battery), Sonata Hybrid 16-17 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 59 hp electric motor (5.5Ah/1.49 kWh Battery), Santa Fe Hybrid 21-, Tucson Hybrid 22-24 *1 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 64 hp electric motor (5.5Ah/1.49 kWh Battery), Tucson Hybrid 25- *1 = Electric motors, 365 hp, (166.8Ah/87.2 kWh Battery), Genesis Electrified G80 AWD 23-25 *1 = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis Electrified GV70 AWD 23-25 *1 = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis Electrified GV70 AWD 26- *1 = Electric motor, 215 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 RWD 26- *2 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Tucson 16-18 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Sonata 20-23 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 90 hp electric motor (38.3Ah/13.8 kWh Battery), Santa Fe Plug-in Hybrid 22-23, Tucson Plug-in Hybrid 22-24 *2 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T Hybrid GDI turbo 4-cyl. + 97 hp electric motor (38.3Ah/13.8 kWh Battery), Tucson Plug-in Hybrid 25- *2 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 67 hp electric motor (27.2Ah/9.8 kWh Battery), Sonata Plug-in Hybrid 16-19 *2 = 3470 cc 3.5 Liter DOHC Smartstream G3.5 Lambda III DPI V6, Palisade 26- *3 = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 18-19 *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Venue 20- *3 = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Kona 22- *3 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl. + 51 hp electric motor (6.5Ah/1.76 kWh Battery), Sonata Hybrid 17-19 *3 = 3778 cc 3.8 Liter DOHC Lambda V6, Entourage 07-09 *3 = Electric motors, 303 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 AWD 26- *4 = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 16-21 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 40 hp electric motor, Sonata Hybrid 11-12 *4 = 2359 cc 2.4 Liter DOHC Theta II 4-cyl. + 47 hp electric motor, Sonata Hybrid 13-15 *5 = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Kona 18-21 *5 = Electric motors, 422 hp, (180.9Ah/110.3 kWh Battery), Ioniq 9 Performance AWD 26- *6 = 1598 cc 1.6 Liter DOHC Smartstream G1.6 DPI 4-cyl., Accent 20-22 *6 = Electric motor, 201 hp, (180.9Ah/64.8 kWh Battery), Kona Electric SEL/Limited 24-25, N Line 25 *6 = Hydrogen Fuel cell, 134 hp motor, Tucson Fuel Cell 15-17 *6 = Hydrogen Fuel cell, 161 hp motor, Nexo 19-23 *7 = Electric motor, 133 hp, (180.9Ah/48.6 kWh Battery), Kona Electric SE 24- *8 = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 5 N AWD 25- *A = 1353 cc 1.4 Liter DOHC Kappa II GDI turbo 4-cyl., Elantra 17-20 *A = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Sonata 15-19 *A = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Kona 18-21 *A = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Santa Fe Sport 13-18, Santa Fe 19-20 *A = 1998 cc 2.0 Liter DOHC Theta II FR GDI turbo 4-cyl., Genesis G70 19-23 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Sonata 20- *A = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G90 17-22 *A = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III GDI turbo 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (5.5Ah/1.65 kWh Battery), Palisade Hybrid 26- *A = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 RWD 23-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Ioniq 5 RWD 25- *A = Electric motor, 225 hp, (111.2Ah/77 kWh Battery), Genesis GV60 Standard RWD 24-25 *A = Electric motor, 225 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Standard RWD 26- *B = 1.2L Kappa, 2.5L L4 SOHC 8V; 1591 cc DOHC 4 cyl. FFV (E22/E100) HB20 12- *B = 2351 cc 2.4 Liter DOHC 4-cyl., Santa Fe 01-04 *B = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra 17-20, Veloster 19-21 *B = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Tucson 05-09 *B = 1975 cc 2.0 Liter DOHC Theta II 4-cyl., Tucson 11-13 *B = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Sonata 11-19 *B = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Kona 22- *B = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Santa Fe 10-12 *B = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe Sport 13-18 *B = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis GV80 21-, Genesis GV70 22- *B = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G80 18-20 *B = Electric motor, 168 hp, (111.2Ah/58.0 kWh Battery), Ioniq 5 RWD 22-24 *B = Electric motor, 168 hp, (120.6Ah/63.0 kWh Battery), Ioniq 5 RWD 25- *B = Electric motor, 149 hp, (111.2Ah/53.0 kWh Battery), Ioniq 6 RWD 23-25 *B = Electric motors, 429 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 Performance AWD 23-25 *B = Electric motors, 429 hp, (120.6Ah/84 kWh Battery), Genesis GV60 Performance AWD 26- *C = 1599 cc 1.6 Liter DOHC Alpha II 4-cyl., Accent 01-11 *C = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 43 hp electric motor (6.5Ah/1.56 kWh Battery), Ioniq Hybrid 17-22 *C = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Elantra GT 18-20 *C = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Kona N 22-23 *C = 2359 cc 2.4 Liter DOHC Theta 4-cyl., Sonata 06-08 *C = 2359 cc 2.4 Liter DOHC Theta II 4-cyl., Sonata 09-10, Tucson 10-13 *C = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 11-14 *C = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Sonata N Line 21- *C = 2497 cc 2.5 Liter DOHC Smartstream FR G2.5T Theta III DPI turbo 4-cyl., Genesis G80 21-, Genesis G70 24- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis GV80 21-, Genesis GV70 22-, Genesis GV80 Coupe 25- *C = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis GV80 Coupe 25- *C = 3778 cc 3.8 Liter DOHC Lambda V6, Veracruz 07-12 *C = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 6 AWD 23-25 *C = Electric motors, 320 hp, (120.6Ah/84 kWh Battery), Ioniq 5 AWD 25- *C = Electric motors, 314 hp, (111.2Ah/77.4 kWh Battery), Genesis GV60 AWD/Advanced AWD 23-25 *C = Electric motors, 314 hp, (120.6Ah/84 kWh Battery), Genesis GV60 AWD/Advanced AWD 26- *D = 1579 cc 1.6 Liter DOHC Kappa II GDI 4-cyl. + 60 hp electric motor (24.7Ah/8.9 kWh Battery), Ioniq Plug-in Hybrid 18-22 *D = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Veloster 12-17 *D = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra 01-10, Tiburon 03–08 *D = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Santa Fe 19-20 *D = 2656 cc 2.7 Liter DOHC Delta V6, Santa Fe 01-09, Tucson 05-09 *D = 2972 cc 3.0 Liter DOHC V6, XG300 2001 *D = 3342 cc 3.3 Liter DOHC Lambda V6, Azera 07-10 *D = 3342 cc 3.3 Liter DOHC Lambda II V6, Azera 11 *D = 1998 cc 2.0 Liter DOHC Theta II FR turbo 4-cyl., Genesis Coupe 10-14 *D = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 12-14 *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T Lambda III DPI twin turbo V6, Genesis G80 21-, Genesis G90 23- *D = 3470 cc 3.5 Liter DOHC Smartstream FR G3.5T e-S/C Lambda III DPI twin turbo V6 with electric supercharger & 48V mild hybrid, 16 hp electric motor (9.8Ah Battery), Genesis G90 23- *D = 1998 cc 2.0 Liter DOHC 4 cyl. FFV (E22/E100) Tucson/IX35 12- *E = 1591 cc 1.6 Liter DOHC Gamma II GDI 4-cyl., Accent 12-17 *E = 1591 cc 1.6 Liter DOHC Gamma II GDI turbo 4-cyl., Veloster 13-17 *E = 1975 cc 2.0 Liter DOHC Beta II 4-cyl., Elantra Touring 09-12 *E = 1797 cc 1.8 Liter DOHC Nu 4-cyl., Elantra 11-16, Elantra GT 13 *E = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra GT 18-20 *E = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Tucson 22-, Santa Cruz 22- *E = 3497 cc 3.5 Liter DOHC V6, XG350 02-05, Santa Fe 03-06 *E = 3342 cc 3.3 Liter DOHC Lambda V6 Santa Fe 07-09 *E = 3342 cc 3.3 Liter DOHC Lambda II RS GDI twin turbo V6, Genesis G70 19- *E = 3778 cc 3.8 Liter DOHC Lambda II RS V6 Genesis sedan 09–11 *E = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6 Genesis sedan 15-16, Genesis G80 17-20 *E = 3778 cc 3.8 Liter DOHC Lambda II GDI V6 Palisade 20-25 *E = Electric motor, 225 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 RWD 22-24 *E = Electric motors, 601 hp, (120.6Ah/84 kWh Battery), Ioniq 6 N AWD 27- *F = 1997 cc 2.0 Liter DOHC 4-cyl., Sonata, 92-98 *F = 1975 cc 2.0 Liter DOHC Beta 4-cyl., Tiburon 97-01, Elantra 99-00 *F = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Tucson 14-15 *F = 1999 cc 2.0 Liter DOHC Nu 4-cyl., Elantra 17-20, Veloster 19-21 *F = 1598 cc 1.6 Liter DOHC Smartstream G1.6T GDI turbo 4-cyl., Elantra N Line 21- *F = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Sonata 15-19 *F = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Cruz 22- *F = 2656 cc 2.7 Liter DOHC Delta V6, Tiburon 03-08 *F = 3342 cc 3.3 Liter DOHC Lambda V6, Sonata 06-10 *F = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Santa Fe LWB/Santa Fe XL 13-19 *F = 3778 cc 3.8 Liter DOHC Lambda V6, Azera 06-10 *F = 3778 cc 3.8 Liter DOHC Lambda II V6, Azera 11 *F = 4627 cc 4.6 Liter DOHC Tau V8, Genesis sedan 09-12, Equus 11 *F = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 15-16, Genesis G80 17-20 *F = Electric motors, 320 hp, (111.2Ah/77.4 kWh Battery), Ioniq 5 AWD 22-24 *G = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Accent 00-02 *G = 1999 cc 2.0 Liter DOHC Smartstream G2.0 (Nu PE) 4-cyl., Elantra 21- *G = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 14-15 *G = 3470 cc 3.5 Liter DOHC Lambda II V6, Santa Fe 10-12 *G = 3342 cc 3.3 Liter DOHC Lambda II GDI V6, Azera 12-17 *G = Electric motor, 201 hp, (180Ah/64.0 kWh Battery), Kona Electric 19-23 *H = 1999 cc 2.0 Liter DOHC Nu GDI 4-cyl., Elantra 14-16, Elantra GT 14-17 *H = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Veloster N 19-22 *H = 2656 cc 2.7 Liter DOHC Delta V6, Sonata 02-05 *H = 3778 cc 3.8 Liter DOHC Lambda II RS V6, Genesis Coupe 10-12 *H = 5038 cc 5.0 Liter DOHC Tau GDI V8, Genesis sedan 12-14, Equus 12-16, Genesis G90 17-22 *H = Electric motor, 118 hp, (78Ah/28.0 kWh Battery), Ioniq Electric 17-19 *J = 1468 cc 1.5 Liter SOHC 4-cyl., Excel 86-94, Mitsubishi Precis 87-94, Scoupe 91-92 *J = 1580 cc 1.6 Liter DOHC Smartstream G1.6 Hybrid GDI 4-cyl. + 43 hp electric motor (5.5Ah/1.32 kWh Battery), Elantra Hybrid 21- *J = 1999 cc 2.0 Liter DOHC Smartstream G2.0 Hybrid (Nu PE) GDI 4-cyl. + 51 hp electric motor (5.5Ah/1.62 kWh Battery), Sonata Hybrid 20- *J = 2497 cc 2.5 Liter DOHC Smartstream G2.5 Theta III DPI 4-cyl., Santa Fe 21-23 *J = 3778 cc 3.8 Liter DOHC Lambda II RS GDI V6, Genesis Coupe 13-16 *J = Electric motor, 134 hp, (120Ah/38.3 kWh Battery), Ioniq Electric 20-21 *K = 1998 cc 2.0 Liter DOHC Theta II GDI turbo 4-cyl., Elantra N 22- *L = 1341 cc 1.3 Liter SOHC Alpha 4-cyl., Accent 95-99 *L = 2359 cc 2.4 Liter DOHC Theta II GDI 4-cyl., Tucson 18-21 *L = 2497 cc 2.5 Liter DOHC Smartstream G2.5T Theta III DPI turbo 4-cyl., Santa Fe 21- *M = 1836 cc 1.8 Liter DOHC 4-cyl., Elantra 93-95 *M = 1795 cc 1.8 Liter DOHC Beta 4-cyl., Elantra 96-98, Tiburon 97 *N = 1495 cc 1.5 Liter SOHC Alpha 4-cyl., Scoupe 93-95, Accent 95-99 *N = 1495 cc 1.5 Liter DOHC Alpha II 4-cyl., Accent GT 96-97 *R = 1595 cc 1.6 Liter DOHC 4-cyl., Elantra 92-95 *S = 2351 cc 2.4 Liter SOHC 4-cyl., Sonata 89-91 *S = 2351 cc 2.4 Liter DOHC 4-cyl., Sonata 99-05 *T = 2972 cc 3.0 Liter SOHC V6, Sonata 90-98 *V = 2493 cc 2.4 Liter DOHC Delta V6, Sonata 99-01 *V = 1991 cc 2.0 Liter Diesel TCI 4-cyl. Sonata NF 06-10, Tucson 05-09 GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, kWh=Kilowatt-hour, PE=Product Enhancement  ===Check Digit (position 9) === ===0-9 or X === The check digit is used to validate a VIN so that computer systems can immediately calculate whether the VIN is valid. The digit is calculated by removing all the letters from the VIN and substituting them with their numeric counterpart. After the substitution, the numbers are multiplied against a weight factor table. The remaining 16 numbers are added together and divided by 11. The remainder of that calculation becomes the checksum, and if the remainder is 10 then the check digit is "X".<br /> ===Model Year (position 10) === * S = 1995 * T = 1996 * V = 1997 * W = 1998 * X = 1999 * Y = 2000 * # = Last digit of year 1-9 = 2001-2009 * A = 2010 * B = 2011 * C = 2012 * D = 2013 * E = 2014 * F = 2015 * G = 2016 * H = 2017 * J = 2018 * K = 2019 * L = 2020 * M = 2021 * N = 2022 * P = 2023 * R = 2024 * S = 2025 * T = 2026 <br /> ==Vehicle Indicator Section== ===Manufacturing Plant Code (position 11)=== * A = Asan, South Korea * B = Bromont, Quebec, Canada (2HM) / Gabarone, Botswana (KMH) * B = Anapolis, Goiás, Brazil (Caoa Montadora plant) (95P) * C = Cheonju, South Korea * E = Pesqueria, Nuevo Leon, Mexico (Kia plant) * F = Jurong, Singapore (PFD) * G = West Point, Georgia, USA (Kia plant) * H = Montgomery, Alabama, USA * J = Nošovice, Czech Republic (TMA) /Benoni, South Africa (AC5) * J = Cikarang, Indonesia (MF3) * L = Žilina, Slovakia (Kia plant) * M = Chennai, Tamil Nadu, India * P = Piracicaba, São Paulo state, Brazil (Hyundai Motor Brasil plant) (9BH) * R = Saint Petersburg, Russia * U = Ulsan, South Korea * W = Gwangju, South Korea (Gwangju Global Motors Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * Z = İzmit, Turkey (Hyundai Assan) * 6 = Sohari plant, Gwangmyeong, South Korea (Kia plant) [Hyundai Entourage] ===Manufacturing Month (India)=== * A = JAN * B = FEB * C = MAR * D = APR * E = MAY * F = JUN * G = JUL * H = AUG * J = SEP * K = OCT * L = NOV * M = DEC ==References== * http://www.newtiburon.com/forums/showthread.php?t=43974 * http://www.paul128.co.kr/paul/car/hdinfo.html * http://www.genracer.com/hyundai-vin-decoder/ * http://www.aiam.org/vin/2000VINBOOK.pdf * http://www.scribd.com/doc/4712367/VIN * http://www.nhtsa.dot.gov/cars/rules/manufacture/ * http://www.vindecoderz.com/EN/Hyundai * http://www.clubhyundai.es {{BookCat}} aqstwzkz6bqsjotx8douk2l4u7khd7z User:Bdinfo/mpls 2 212877 4668273 3556141 2026-09-03T13:15:12Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668273 wikitext text/x-wiki {{lowercase}} Note: All multi-byte integers are in big-endian format. {|class="wikitable" border="1" style="width:90%;margin-left:0; background: #F1B7FF;{{Text default color}};" |+Blu-Ray Playlist (<code>.mpls</code>) File Format !Field !Position in file !Size (in bytes) !Description |- |Header |$00-$03 |4 |Consists of the ASCII text "MPLS". |- |Version Number |$04-$07 |4 |Version number in ASCII format. Usually this will be "0200". |- |Playlist start address |$08-$0B |4 |Offset of the Playlist section. Measured from the beginning of the file. This address should be on a word boundary. |- |Playlist Mark start address |$0C-$0F |4 |Offset of the Playlist Mark section. Measured from the beginning of the file. This address should be on a word boundary. |- |Extension Data start address |$10-$13 |4 |Offset of the Extension Data section. Measured from the beginning of the file. A value of $00000000 means that the Extension Data section is not present. If used, this address should be on a word boundary. |- |Reserved |$14-$27 |20 |Currently unused. All bytes in this section should be set to zero. |- |Application Info Playlist length |$28-$2B |4 |Length of the Application Info Playlist section, not counting the four length bytes themselves. This value will almost always be set to $0000000E (14 bytes). |- |Reserved |$2C |1 |Currently unused. This byte should be set to zero. |- |Playback type |$2D |1 |$01 = Standard play<br/>$02 = Random play<br/>$03 = Shuffle play<br/> |- |Playback count |$2E-$2F |2 |Only used if Random or Shuffle mode is selected via the previous byte. If Standard mode is selected, this value is disregarded (and usually will be set to $0000). |- |User operation mask table |$30-$37 |8 |Description pending. |- |Miscellaneous flags |$38 |1 |Bit 7: Playlist random access flag (1 = this playlist cannot be accessed by user navigation commands)<br/>Bit 6: Allow mixing of sound effects with stream audio (1 = yes)<br/>Bit 5: Lossless sound may bypass mixer (1 = yes)<br/>Bits 4-0: Reserved (set to 0) |- |Reserved |$39 |1 |Currently unused. This byte should be set to zero. |- |Playlist section |Starts at address specified in $08-$0B |style="background: #E6FFEE;{{Text default color}};"|Varies |style="background: #E6FFEE;{{Text default color}};"|See table below for details. |- |Playlist Mark section |Starts at address specified in $0C-$0F |style="background: #FFFFE6;{{Text default color}};"|Varies |style="background: #FFFFE6;{{Text default color}};"|See table below for details. |- |Extension Data section |Starts at address specified in $10-$13 |Varies |No information is available on this segment, which is almost always omitted. |} {|class="wikitable" border="1" style="width:90%;background: #E6FFEE;{{Text default color}};margin-left:0; " |+Playlist section !Field !Offset !Size (in bytes) !Description |- |Length |$00-$03 |4 |Length of the Playlist section, not counting the four length bytes themselves. |- |Reserved |$04-$05 |2 |Currently unused. These bytes should be set to zero. |- |Number of Play Items |$06-$07 |2 |Number of Play Items to follow. |- |Number of Subpaths |$08-$09 |2 |Number of Subpaths to follow. If there are no Subpaths, this value will be set to $0000. |- |Play Item entries |Starts at $0A |Varies |See table below for details. |- |Subpath entries |Varies |Varies |See table below for details. |} {|class="wikitable" border="1" style="margin-left:0; width:90%; background:#FFFFE6;{{Text default color}}; /* css comment */" |+Playlist Mark section !Field !Offset !Size (in bytes) !Description |- |Length |$00-$03 |4 |Length of the Playlist Mark section, not counting the four length bytes themselves. This value should equal (Number of Playlist Marks * 14) + 2. |- |Number of Playlist Marks |$04-$05 |2 |Number of marks to follow. Each mark is 14 bytes long. |- |Playlist Mark entries |Starts at $06 |style="background: #FFE6F7;{{Text default color}};"|Varies |style="background: #FFE6F7;{{Text default color}};"|Playlist Mark entries follow the section header. See table below for details. |} {|class="wikitable" border="1" style="width:90%; margin-left:0; background: #FFE6F7;{{Text default color}};" |+Playlist Mark entry !Field !Offset !Size (in bytes) !Description |- |Reserved |$00 |1 |Currently unused. This byte should be set to zero. |- |Mark Type |$01 |1 |1 = Entry Mark<br>2 = Link Point |- |Play Item ID |$02-$03 |2 |Determines which Play Item the mark is associated with. |- |Time Stamp |$04-$07 |4 |Time offset associated with this chapter mark. This is measured in 45000ths of a second. |- |Entry ESPID |$08-$09 |2 |Exact purpose unknown. This value will usually be set to $FFFF. |- |Duration |$0A-$0D |4 |Duration of this chapter. This is measured in 45000ths of a second. A value of $00000000 indicates that there is no fixed duration. |} ezu5ysp4seafnlssl0aun1rv14do3od Trainz/refs/Tips And Tricks-route building 0 216526 4668269 4620971 2026-09-03T13:06:49Z ShakespeareFan00 46022 4668269 wikitext text/x-wiki {{FUN-top|AM&C=1|sort=tips and tricks}} ==Installing Content Over Multiple Trainz Versions== If you have multiple versions of Trainz installed on the same computer, there is a simple way to ensure that new material is imported into the correct version. # Open the version of CMP that was installed with the version of Trainz you wish to import the content for. Download from the DSL will now be installed for that version only. # To import information into another version, repeat the above. # If you double click on a downloaded file on your desktop, it will automatically install it to the last version of CMP that was opened (eg if the 2006 version was the last used, then it will import content to that edition unless you first manually open a different version). ==Textures== : {{TrainzTip|Textures are surfaces that colorize the {{wp|wireframe}} underlying the 3D virtual world surface and 'skin' objects in Trainz}} * Always lay a base texture first in case you miss an area of the main textures. * Rotate your textures in big areas rather than small for a more realistic look. * If you are laying down large areas of texture, overlay the area with patches of the same texture at a different scale (smaller or larger) to break up the patterning that can occur. A different texture that is nearly the same color can be used for the same effect. * Where power lines cross your fields make a small circle of grass around the base of each post or pylon. Farm machines steer clear of power line bases so they are always surrounded by rough grass (check Google Earth for proof!). * Not all textures are a simple color or pattern - some are shrubs, bushes or rocks. If you are trying to delete or move these you won't find an object or a spline. Delete then by pasting a blank section of terrain over the area where they are appearing. * With some tunnels a 'dighole' has to be used in order to see through the tunnel. The 'dighole' is then masked with a suitable 10x10, or larger, terrain object that resembles the surrounding texture. At least one of andi06's tunnels requires the 'dighole' and he has created a piece of terrain to cover above and below the tunnel. * When you’re putting down textures, if you want a baseboard done fast, click the thing that looks like miniature baseboards. There are 8 of them with red in the middle. It textures the whole baseboard. * If you would like some random terrain (user-specifiable to a degree) to start a new fictional route, take a look over at http://freepages.misc.rootsweb.ancestry.com/~wewain/trainz/Surveyor/Baseboard/Topology/TerrainGeneration/Computer-generatedTerrain.htm for a utility called Terrain Zurveyor. You can specify general conditions and hit Generate and it will create a displacement file that you can directly use in Surveyor to set the terrain of a user-specified area. * You can also find some nice pre-generated displacement files over at http://www.trainz-online.com/ which includes some pictures so you can have an idea what you will be getting. * When you are making fields note that a field is rarely ploughed right up to the fence. Try to orientate you fields so you can paint a rough grass texture to follow the line of the fence and paint the rest of the field your required colour. Always include a "Farm Gate" or "Open Farm Gate" in your field and paint a mud texture round it, suggestive of tractors or animals going through it. If you use a textured pattern with a fixed orientation, such as a crop, you can overlay it with patches of coloured texture to create areas of light and dark, which is how a crop usually looks. ==Foliage== * Planted trees/objects and now don't want them? Copy and paste a blank area of board onto the trees/objects and now they're gone (be sure to select Paste Objects in the pasting options). * When laying out large numbers of trees use the "Randomly rotate new objects" function in Surveyor Settings (in Options). * When laying out Tree Splines, avoid laying them in straight lines. Consider laying in short stretches that criss-cross to make them look less uniform. * When building a country route, avoid using the same hedge spline throughout. Mix it up a little or try different types of fencing to create variety and a more realistic look. * Sick of planting trees and texturing? Build up a random clump of trees and add the texture beneath in a square somewhere out of sight on a baseboard. Name one of the trees 'Trees' so that you can do a 'find' if you forget where you put them. Now copy and paste where they need to be. * Always paint the forest floor a darker colour (e.g. “Ger Forest”) than the surrounding area. Individual trees should be planted in a dark patch. * For good measure use a sound file such as "Crows". * Consider varying the height of the trees by using the “Height” button. A tree can be a bush by burying the trunk, but it can also be raised above ground to add variety, without its suspension being obvious from a distance. If you are using a very small variety of trees and it's all looking a bit similar, try pulling a few into the ground to resemble less mature trees or shrubs. You can do this with the ones you are going to copy and paste and they will retain the heights above ground. * I'm modeling an area in the Eastern U.S., where vegetation is everywhere, and one thing I've had a hard time locating is good impenetrable-looking undergrowth. I've found a very effective solution to be to place low-poly trees (the cottonwood trees are especially effective for this) and lower them with the height tool until only the tops of the trees are visible. To my eyes it's much more realistic and much faster as well than placing vast numbers of bushes, etc. along the route. If you stick to just a few types of trees the rendering time is minimally impacted as well. (Be sure auto-rotate is on.) * Only use high poly items (such as 3d trees), where they are in full, close and lengthy view of a camera. While the 3d trees look great in the screenshots, they have less impact at 100 km/h from the loco cab. * You can force perspective by using matching tall/short trees sets for foreground and background. For Australian layouts 'Tree Gum Group' (kuid -1:100275) can be used in the foreground, and the smaller 'Tree Stickish Group' (kuid -1:100286) used in the distance. * Consider rotating and rolling (Shift+Rotate) scenery items such as trees and clutter to create variety. Also, many scenery items, including buildings, look better if slightly buried into the ground. ==Water== * When creating water with different heights close together, make sure the water doesn't touch. If it does then it will act as one big water mass. * To create rivers, use water or river splines rather than animated water. There are three reasons for this: # When you're speeding past on a train you can't really tell it's not moving. # Performance will be massively better than if you used animated water # Splines allow you to make realistic rivers which flow down hills, rather than having lots of flat bits broken up by rocks / waterfalls etc. ==General== * Always save before you paste Terrain plus Objects like {{TG|M|mocrossings}}. This will avoid that ''nasty spline bug'' (where you paste and some splines go nuts and try to join others half way across the map). {{TRS-EdNt| The tip is good because it forces the data base to reorganize itself, closing up confusing cross-references that cause those crazy flying splines across the map.}} * When using the undo button to delete a spline, ''especially those involving'' 'double track objects' ''TRS may crash.'' (This undo bug seems to be fixed in Trainz Classics and is definitely fine in {{TN|the TS's}}.) * To show {{TL|KUID}}'s, so as to show: ''object/track/trains KUIDs in Surveyor'', :* In {{TN|The TR's}}: add this sentence to your trainzoptions file: (-showkuids). :* In TS2009-SP4, TS10 & TS12 this is done with a click box setting in General Settings. * '''{{'}}Show camera location{{'}}'''&mdash;When developing routes it is often useful to be able to go to a location that you identified while testing the route in Driver. :* To make that easy, in the game after {{TN|The TR's}}, click on Main Menu (top left corner of window) and choose Settings, then General Settings. Under 'Advanced settings for content developers' click the tick-box next to 'Show camera location'. Close the window and return to your route. :* In {{TN|The TR's}}, add the '''''{{'}}[[Trainz/Trainzoptions.txt_file#loc|-loc]]{{'}}''''' switch parameter to the {{TL|Trainzoptions.txt file}}. The -showkuids and -loc switches may not both function simultaneously in the TR's. :* In both Driver and Surveyor, the coordinates of the target of the camera are shown in the bottom left corner of the screen; [[Trainz/Trainzoptions.txt_file#loc|this section]] describes how to interpret the coordinates. In Driver they are in a very small sized white type, and may be hard to see if the Driver commands bar is active so one can press {{kp|f5}} to hide it. In Surveyor the coordinates are slightly bigger. ::: Make a note of these (by the old-fashioned pencil-and-paper method if necessary) as you swap between Driver and Surveyor mode. A screenshot or two is useful as well. :::'''To use and co-ordinate:''' ::: Now, in either Surveyor or Driver, from wherever you are just move (right-click on map) in an east-west (left-right if you are looking north) direction.{{bullR }} See if the X-coordinate increases or decreases and adjust according to where the destination is. Continue moving until the x-coordinate matches what you've jotted down.{{bullR }} Do the same in a north-south direction. You'll soon home in on where you need to be, and the more you do it, the easier and quicker it will become. * Downloading from the DLS with Content Manager for versions prior to T:ANE runs much quicker if you minimise CM. This avoids the screen updating with each new item, which slows things down a lot. The difference is most noticeable with a fast connection and many smaller assets (which is commonly the case when downloading a new route). * BE PATIENT. Rome wasn't built in a day, and neither will your route. Just keep at it, and the vision in your head will become a reality. ==Tracks== {{TRS-EdNt| Trainz scripting software searches down a spline mathematically along a line of connected vertex points, which are stored in an array of similar data. This is organized from low to high as track is laid. The scripts, naturally enough search using similar indexing as to that used to put the data away. Consequently, they also search initially in the same order first, hence the direction of travel and the direction of addition to the data base create a bias that sometimes matters. * Consequently, while less true in the TS's and after, some scripts simply work better if the track is laid down in the same direction of road travel as generally occurs in the modeled prototype scene. This can be true both not only for AI behaviors, but also for driver rules, and more surprisingly perhaps, for some industry scripts. * While the directional dependencies are not as pronounced a problem as they were in TRS2004, the improvements in the TS's are not completely directionally independent. }} * There are hundreds of different types of track available in Trains and on the Download Station. Experiment to find the best type for your chosen prototype scenario. Don't put your selection efforts solely into the rolling stock, scenery and buildings used on a route just to have the visual effect ruined by using the default tracks built-in to the original Trainz. This is less of a problem since TS12, as the TS's have the replace assets tool, and since TS12 the replacement tool now also works for {{TR|K|track}} objects. * Where possible, lay your track in the direction the trains will be traveling. This helps the AI as it "prefers" track which is laid in the direction of travel. * Do not use double track track splines. It's a lousy short cut for several reasons: # it can make the AI think it's traveling in the wrong direction (both tracks are laid in the same direction){{efn |This is not true for double track created correctly to build number 2.9 and higher. This double track can usually be identified because it is Kind Track and not Kind Bridge. For Kind Track the direction of each track is defined in the config. But note that it is possible that the content creator intended that both tracks are in the same direction - for example if the track was intended for building a yard. It's just a matter of picking the right asset for the job. }} # it makes curves very difficult to build{{efn |What the original writer means by making curves difficult to build is contrary to others experience. A 2T track will bend around a curve quite nicely. (See the many used in the Highland Valley maps, for example.) Trainz deflects the path of curvature for any three points (vertices) in space, and does so in three-D space. It also reflects combinations of points beyond. }} # It's entirely possible the 2T track you choose could have the wrong spacing (unless you have carefully chosen a proper double track made for that country; PEV's {{TL|MeshViewer2}} can be used to view distance spacing for a given mesh if the asset is opened for edit.) as such spacing parameters not only vary by culture of the country of origin, but also quite frequently by the practices imposed over decades by the company's internal culture and engineering departments. * Leave adding the signalling till last, as laying a signal and then laying more track ahead of it can cause problems with the AI. Similarly, adding track spurs and junctions after having signalling in place needs careful analysis of the system and often manual checking.{{efn |''Manual checking of signalling'' meaning placing cars, usually locos on the tracks and verifying the signals work properly with different switch positions and car combinations and locations.}} This is doubly recommended in large track additions, as working through a system of complex signal blocks is best done systematically from one spot then along the line until things become simple and straight forward again. [[File:Trainz three and four points deflections.png|800px| <!-- --->thumb <!-- |alt=[[File:Trainz three and four points deflections.png]]| --->Take time to study the lines and curves on this image. Trainz bends the track along the height dimensions as well as in the map axis directions. ]] * Use the {{TLT|Straighten Track tool}} to make proper switches and make sure the diverge leaves the mainline at a suitable small angle. Take a low-down view along the track to make sure the angle is not too sharp - what might look OK from a top-down view can be a nasty jolt for a train. [[File: Trainz combating a junction's deflections before and after use of Track straightening tool.png|alt=File: Trainz combating a junction's deflections before and after use of Track straightening tool.png| 800px| This image illustrates the ''before and after effects'' of using the {{TLT|Track Straightening tool}} along the mainline with a diverge. The top image shows the reflected bend from the divergent track causes a further reflection in the continuation of the mainline track.]] * When laying in a new set of points (a diverge) on a slope, keep in mind gradient differences along the slope are measures indicating the vertices are not co-linear, so will each cause a curved deflection in the height of the track (see the figures ''above and below''). [[File:Trainz combating deflections installing a junction on a slope.png <!-- ---> |800px |thumb|alt= <!-- --->File=Trainz combating deflections installing a junction on a slope.png| <!-- --->Combating altitude deflections installing a junction on a slope.]] When adding an intersecting spline, even one of an entirely different nature, the simulator often acts as if the tooltip placing a new vertex and the existing nearby spline are magnetic, hence even putting down a vertex in near proximity can result in the misplacement of the vertex on the spline where you do not want it. The {{kb|Shift}} key when held keeps the placement centered where the tool-tip is focuses and prevents the pseudo-magnetic behavior. * Hence, ''It is often important to Hold down shift as you are moving or placing a spline point'' in tight areas, or adjacent to other tracks to prevent it from joining another spline. :* Use Shift also if there is another spline object nearby which is incompatible with the current spline tool, since such can prevent the current type from being placed in a restricted area. Hold down shift to make it go down, then release Shift and reclick the point to string to a new segment, to continue laying the length of the object. ''This Shift behavior is a godsend if you are working with a very complex area!'' * Terminate the last few yards of the ends of tracks by a buffer stop or rail end. Trainz AI Drivers (and the mini-map) will display these as a red signal. * Any track on catch points or safety sidings, should be laid as rusty track. Real train drivers will not allow their trains to actually make contact with the buffer stops/rail ends, and trap points and catch points should never have trains running over the "dead" track, so that track should always be rusty. Note this requires having a compatible looking series of rusty track compatible with your choice of tracks. ==Splines== * When laying down multiple spline points, hold ctrl and simply LMB each point in turn. Handy for curves. * To prevent a spline point from automatically connecting to a nearby point, press Shift as you place the spline. * For splines such as fences or hedges where you want them to join at an angle, allow them to connect when you lay them down, then come back and disconnect (Split Spline 'Q') them afterwards. This is quicker than trying to prevent them from connecting as you place them, and also ensures that they are perfectly aligned on top of each other. * If a spline point displays with a white dashed circle in Surveyor, that means it is attached to the ground at that point, and will change height if the height of the ground changes. If the point is displayed with a yellow dashed circle that means the spline point has a fixed height, and will not change if the ground height changes (but note that the circle is always white when viewed against the wireframe background). * When a spline is laid across terrain with varying heights, the spline will follow the height of the terrain. To force the spline to a constant gradient between two points, select the Spline Height ('H') icon then LMB on a spline point at either end of the section. Actually changing the height of either point will also force the spline to a constant slope. * The Smooth Spline ('S') tool doesn't actually smooth the spline - it smooths the terrain along the spline to match the height of the spline. Matching the ground height to the spline height increases with more clicks, out to a maximum of about 6. * The straighten track tool can also be used with splines. * If you are raising the terrain to the road level (which is often required to hide the shadow of the road) don't worry if small bits of the terrain texture appear through the road. This will look like dirt or rubbish that passing vehicles have picked up from the verge. It can be disguised with a suitable texture applied with the minimum radius. * If you are using invisible road to route cars through an intersection, remember that the cars will always take the left branch at the junction of the road and the invisible road. So if you want the car to turn right you have to make the invisible road take a jig to the left, however small, before swinging right. If this is done properly it looks like the driver just took a slightly wider line through the turn. ==Buildings== * When making large industrial or residential areas, set up a nice looking section and then use the copy/paste tool to expand the area. This can save you hours when route building. * Avoid populating your world with too many different items (whether inbuilt, or downloaded). Pick a set of items you can use repeatedly, and try and stick to them, to improve game performance. You can use the adjust height and rotate buttons to add variety. * Overlay/combine existing buildings to create new buildings. * Combine multiple buildings together to make them fit the situation * When placing a building (or any scenery with a large base) be sure to check that it is at ground level all round. If the ground is not level it may be necessary to partly bury one side of the building, or adjust the ground level, to avoid space under the building. * When placing a building on sloping ground it may be necessary to first place a 'slab' asset that can be partially buried in the ground, to give a flat base for the building. There are many slabs available on the DLS. * When you're building a station, make sure you get the gap between the train and platform right by placing a train on the track and creeping the platform up to the train. The rule of thumb is - if there's space for a passenger to slip down, the gap is too wide. * If you put a train on the track you can't move the track or any track directly connected to it. This is why it makes more sense to move the platform. * Temporarily drop "hydraulic buffers" onto the track and shove the platform up to them and that way you get the width correct and the ends to match as well. * To rotate an object to match the angle of the track, hold down the 'Ctrl' key when you rotate the object and get a 1/10th more precise angle. * To get a closer 'zoom-in' distance in surveyor, to help fine tune or position something at closer range... is to add the line "-surveyorfov=30" to the trainzoptions file. * The minimum distance between the railway boundary fence or wall and the nearest running rail is 10 feet (3 metres). Anything inside that is called the "Lineside". When you place fences, don't make them less than 10 feet from the track. * Copy and paste is your friend. Allows you to knock out large areas/tasks in a breeze ==Releasing a Route== * Re-create the thumbnail - the default thumbnail will show the route as you created it, not as you finished it. * Check that you have included a proper description. Including this will give the user the information they need to decide whether or not to download the route. * Include in your description an indication of whether or not all content is available on the DLS. If it isn't all on the DLS, be sure to include information about where it can be found, including links to download sites. * Before you release a route, try to run some common scenarios to make sure the AI/signalling works as expected, and to ensure that track work is all correct. * Compare your route with as many photographs as you can. This will help make your route as prototypical as possible. * Try to include at least one unique area to your route that you haven't seen in another (e.g.a different sort of factory or industry) to create a point of interest. * Try to look at routes from different geographic areas for inspiration. For example if you model USA then look at European/UK routes (and vice-versa). * Make the name short. It doesn't have to be (WM East Sub) or shorter than that. Just make it to where the user can understand and reach the route easily. * Also attempt to put in a description. ==Trackmarks/AI Drivers== * If you want to move track marks beyond spline points, use the move function. This works on track marks of all types. * If your AI trains refuse to load or unload at ProtoLars tracks try this trick. When sending the AI to a ProtoLars track, I use the driver command "Stop Train" (131986:150150). So issue the following driver commands: # Drive to Trackmark-Stop Train-Wait for n minutes-etc. # Drive to Trackmark-Stop Train-Wait for 10 seconds-Uncouples-etc. This applies the air brakes to the whole train and prevents any movement (the probable cause of not un/loading). * You can use a driver more than one time if you just change their name. I set names of drivers to the name of the train to see train locations when on a large map. * When a portal creates trains, the same driver get assigned to the same train every time. * If you have a long stretch of track or you find the AI constantly takes the wrong route at a certain location, lay a trackmark down on the path you want the AI to take and then tell your trains to "Drive Via". I find that placing a trackmark a full braking distance before a signal and telling a train to "Drive Via" prevents the AI from trying to take control of points which are beyond the signal and it will instead wait for the signal to clear. * I have been experimenting with 'path control' and 'path trigger'. I wanted to get the train to stop before it made the next path and carried on with its journey into the yard from the mainline. I was moving the trigger to get it so far from the signal that the train would reach the trigger just as the signal stopped the train. after some playing around i found the train stops 25 metres short of the signal, so i now place my triggers in exactly the same spot as the signal and set the radius to 26 metres, works great. ==Bridges/Docks== * When you make Bridges note that grass does not grow under a bridge so use a dark colour such as "Dock Surface" or Ballast if its track side. * <b>Tips for using Plate Girder Bridge</b> If using "Plate Girder Bridge" to cross 2 tracks, first lay the basic bridge across the tracks and set the height by placing 2 Locos underneath and allowing about 4 feet clearance. This is important because Plate Girder Bridge has an extra deep girder. Next, click "Get Height" and "Use Height" to make sure both ends are the same height. Then form another section of bridge and VERY gently stretch it until it forms a new abutment but stop stretching it before it forms a girder. Place the end of the new abutment in line with the bridge abutment after using Use Height to make sure the new abutment is the same height. It's best to line both abutments up in an aerial view. On the left side of the bridge you see the completed abutment - the blue brick makes the join virtually invisible. Of course, while you manoeuvre the section into position you must keep the shift key pressed down so that they don't physically join up! This will work with nearly any Trainz bridge and repeating sections of abutment you can construct a long brick viaduct. ==Rolling Stock/Locomotives== * You can load a car by pressing the ? button in Surveyor it will show you the list of loads it can take. * But quick easy way to get your engine from heaven out of the way is to upper left corner tab "remove missing dependancies" then save this will remove your ghost engine... ( did that myself one time and that worked for me). ==-freeintcam== Allows you to move freely around inside a train Cab. You're no longer locked into one place now. Works in TRS2006 and TC as far as I know. Holding down shift allows 'zooming' speed in driver to check track connections without travelling the route at regular speed. ==Quick and Easy Mountains and Slopes== -This is a two step process. Use the Fill area tool in the "Topology Menu" on an area I call the palette, just some base boards that I add to the route to create items to be copied for pasting elsewhere. I select "Hill" and fill an area at least three to four grid squares inside one full base board. It does not have to be square nor a full baseboard, just leave enough room around the filled area so later you can place all the copy lines at 0 elevation. If I'm after really big hills I use 4 base boards but again only fill up to 3 or 4 squares from the edge to leave the 0 level edge. -Now the trick. In the "Tools" menu use copy and paste. Copy the "Hill" but be sure to have your copy lines just outside the raised area and at "0" elevation. This is important. Set the paste functions to height and RELATIVE. The relative is critical. This way you have no sharp edges on your pasted item and can overlap and compound with additional pastings to double the height of the new land form. By varying the original template from a gentle slope to sharp cone you can get almost any topography you wish. Also note that when you paste you can use half the hill by moving to the edge of a base board. That way your hills can start high at the edge of the route and slope down and in, acting as backdrops to the route. With a little bit of playing around you are just a few clicks away from mountains, hills, and slopes that cover entire base boards quickly and easily. -Stagger the paste in a brickwork fashion and rotate each time to avoid repetition. Planted trees/objects and now don't want them. Copy and paste a blank area of board onto the trees/objects and now they're gone. To create nice gradients, lay the track first, set the spline heights then click on the "smooth spline height" button to snap the ground right up to the track! This works with curves and turnouts too, beautiful cuttings and embankments at no fuss at all! ==For Prototypical Routes== 1) Carefully look at the scale of the buildings your putting in your route. There are buildings on the DLS that are much too huge and way out of scale for modelling the real world. Rule of thumb- If a 200 ton diesel loco looks small next to a building in your route the building is probably too large and not to scale 2) There is nothing worse then driving your train over "floating track" that has a space between the track and the ground. When you are done laying all the track for your route, use the ground elevation tool to bring the ground up to your track. Don't bring your track down to the ground or you will lose the gradient you set for the track. Select the "ground up" button in the topography menu and gently tap your left mouse button to bring the ground up to your track. Keep doing it until the ground just starts to cover the edge of the track, then hit the undo button once to lower the ground one "mouse tap". Do this for your entire route. It is time consuming but the result is no more ugly space between your track and the ground. 3) Iron and steel bridges should have abutments at each end. Iron bridges do not magically emerge from the ground. It looks very fake. Also, track does not hang in the air when connecting to a bridge. (Would you drive a locomotive over that in real life?) Place a stone or concrete abutment to give it that prototypical look. Or use a retaining wall spline to give the bridge an abutment 4) Try to keep your industrial complexes a realistic size. Set surveyor to use "real scale" and measure the buildings from Sanborn maps. You will find that most factory complexes in the real world are actually much smaller then they appear. 5) In city areas, use textures that are kind of drab. Railroad yards and industrial sidings are very dirty, dark, unfriendly places. See the route "UK Somewhere" for an example of excellent example of texturing to give a route a "industrial look". 6) Don't use "black" textures for forests floors. ==Track Laying Tips for Yards== First when laying a Yard out, do each half of a double ended yard with Track running in one direction then do the same for the opposite end. so that the track will look like this <code><---------------:---:---:-----------------></code> That way your track marks will be facing in Opposite directions and will make it easier for AI Trains to move to the proper ends of the yard. Use a naming convention, such as N-S or E-W (Yard) Trk (#) NB-SB or EB-WB for your track marks. That way you have things in nice and neat order when your want your AI Trains to Drive to or Drive Via a certain track mark. Name junctions using a meaningful name, or a naming convention. For example: A run-through track going from East to West - the west junction to the run through track can be called WRT and the east can be called ERT. Major yards consist of 5 parts. *Receiving yard *Classification Yard *Departure Yard *Local yard *Service tracks These all play different roles in the yard function. Cars go to the receiving yard then to the classification yard then to the departure yard. The first yard ever to have this was Dewitt Yard in East Syracuse. You can follow the tracks from old plans. Service track is where damaged cars and broken locos are stored and worked on. Local yard holds cars used for local service at industries. Some yards will have a storage area (sidings) to store extra cars. Real world observation in the former {{w|Lehigh Valley Railroad}} yard in {{w|Duryea, Pennsylvania}} showed 9 of 11 tracks have been converted to long term storage tracks with exceedingly close spacing (so close one had to twist and step sideways to move down the line of cars. If your AI drivers refuse to go into a siding try placing an invisible signal in front of the buffer/rail-end. This may be needed where the buffer or rail-end is not already configured as a signal - AI drivers will not drive into unsignaled portions of track. On UK Railways catch points (spring loaded trailing points) were installed on gradients to derail runaway wagons. They are best used on lines where you normally let the AI drive and Alastair should not be allowed near them. They should be laid with rusty track and provided with a Catch Point sign. When making yards, without a template, start with your mainline (through) track and off that make a normal spur that straightens out and ends where ever. <div style="vertical-spacing: 77%;" ><code>___________________________ <br/>___________________________\_____</code> </div> Now make another off that like so. <div style="vertical-spacing: 77%; line-height:80%;" > <code>___________________ <br> ___________________\___<br/> _______________________\____</code> </div> Leaving a space so that you have an area for the junction so it don't mess up anything. I find this type of yard building much easier and better. However, it is not prototypical - most yards have a straight or smoothly-curved feeder to the spurs. <span style="line-height:80%; "> <code>__________________\ <br/> ___________________\ <br/> ____________________\____</code> </span> Wherever possible, create your turnouts on flat ground - creating good looking turnouts is difficult if the ground level changes. If track is floating, then use the Smooth spline height "S" tool in the Advanced tab of the Track edit tab. That will bring the ground up to the track. There are also tools in the advanced tab in the track tab that allow you to set gradients and spline point heights that I have found very useful. For a useful source of yard diagrams, check out the documentation from Conrail here: http://www.multimodalways.org/archives/rrs/CR/CR%20Maps/CR%20Maps.html ==Searching for content when building== When building a route there is an endless seeking for content, tracks and textures that you know that you have somewhere but everything drowns in the huge amount of material. I know about filters etc. but find it a bit tricky to organize. -To find and place what you want to use later on an empty baseboard and then get it by the pick tool is no news either, but I have added a little extra routine there that works very good for me. -First I have to start with a time consuming and rather boring task, but it pays off very well in the long run. I start with an empty baseboard and then I fill it with all the content, textures etc. that I like and possibly want to use later. Yes, it takes a long time really to search trough everything and place it in proper order on the baseboard... -Then I save that single baseboard, by the name "toolbox". Whenever I want to build a new route or go on with an already started route I simply merge the toolbox-baseboard to the route and pick whatever I need from the toolbox, easy and fast without a lot of boring and endless searching. -When the route is ready, if that ever happens, I simply delete the toolbox. No time saved really with one single route, but the point is that you can use that saved toolbox to all routes you ever wish to build as many times you wish. The boring task to search for material is only necessary one time. -If you have a large area such as a Town a Forest or a Major Road to build, make up a "Works Yard" on an empty baseboard. Go through EVERY type of house, tree or road bridge and put one example of each in the Works Yard so that you can compare them all and use the best ones. You'll often forget what Content you have available, and this is a good reminder My solution was not to try to put everything into one route, but to make separate, categorized routes with only one type of objects, and no more than 100 or so of those per route. I named the routes according to the type of objects that are installed on each ("Bridges 01", "Bridges 02", etc.) I just use the "Get Object" tool to click on the object I'm interested in - I found no need for separate labels I just use the "Get Object" tool to click on the object I'm interested in - I found no need for separate labels. ==Coupling to Consist== When you want to use AI to couple a Locomotive to a Train/Consist in a Siding the Locomotive will drive at Line Speed as far as the points for the siding and then at 1 MPH until it reaches the Train. This can be tiresome if the siding is very long, so what you do is 1) decide on a place (call it the Coupling Point) where the last vehicle in the Train/Consist will stand, this being the vehicle the Loco will couple to. About 5 yards from the Coupling Point pace a Signal Invisible on the track so that the AI Driver can see it as he approaches the Train. Then place an Invisible 5 0r 10 MPH Speed Limit on the entry to the siding, and (leaving the siding) a Speed Limit for whatever your Line Speed is. Now when the Loco enters the Siding it will drive at 5 or 10 MPH till it reaches the Signal Invisible (a few yards from the Train) and slow down to 1 MPH before coupling. This works like a charm for me. <!-- ***** This comment, if it shows, is the top of the substed template:BP-TRS-refs ***** ---> &nbsp; ==Notes, Footnotes & References== {{#if:|| Config.txt files are endemic and ever present in Trainz assets, for no asset can be defined without this type of {{TRC|p=Computer Science container}}. The keyword-value_of_key pairing must always be kept in mind in editing or creating Trainz content. The {{TBS|5=TrainzBaseSpec}} contains values and containers which are most common in asset defining config.txt files. &nbsp;}} {{#if:|| ===Notes=== {{notelist}} &nbsp;}} {{#if:|| ===Footnotes=== {{reflist}} &nbsp;}} {{#if:|| ===References=== * Trainz printed or {{wp|pdf file}} Manuals, applicable version - usually in the {{BL|..\extras or ..\extras\manuals folder}} * {{N3V|Config.txt_file|TrainzOnline Wiki Config.txt file page}} and various other pages * {{N3V|CCG|TrainzOnline Wiki: '''Content Creator's Guide pages'''}} (various) * Various {{TL|CCG}} and Auran websites {{#if:||| &nbsp;}}}} <!-- ***** This comment, if it shows, is the bottom of the substed template:BP-TRS-refs ***** ---> {{FUN-bot|sort=tips and tricks|AM&C=1}} awkrjadzr6umnadpitgyx751purzc59 User talk:JasonHaddad2000 3 219768 4668547 4593047 2026-09-04T10:39:58Z ShakespeareFan00 46022 4668547 wikitext text/x-wiki {{sdelete|Possible inappropriate use of talk page, Account was blocked for vandalism at Commons}}} == Jason Haddad's Talk == Dear Rocket000, Here is Something for you == Here is a New Inappropriate Adult Content or Language Movie (uncut) Show (edited) == "Kick My A×× and B×××s Sh×× Up Alvin"! Watch Out With For Adult Content: Who Sometimes E*clipit NOT FOR KIDS or 18+ Profanity/Language: Shut Up the 'S-H' Word Crap the 'C-R-A' Word Poop The 'P-O-O-P' Word B×lls the 'B' Word B*stard the 'B' Word and Lot of Bad Stuff Violence: THE ADULT ONES ARE BAD == Coming == on 2/14/2010. thank you Ass the 'A' Word and Assh*le the 'A-H' Word Can't is not a bad word but T*ts The 'T-I' Word Christmas is A GOOD WORD == yeah == these are the bad words and s*xy == Texting == <nowiki>'''''Bold text''[[</nowiki> == Link title == <nowiki>[[File:[[Media:Example.jpg]]<math>Insert formula here--~~~~</nowiki> ---- <nowiki>#REDIRECT [[Insert text]]</math>]]]]'''</nowiki> == CNN's HLNNews/FOX/Syndicated/Customized: Alvin and the Chipmunks Rated TV-MA ([[CNN's HLNNews/FOX/Syndicated/Customized: Alvin and the Chipmunks Rated X]]) == This article is part of CNNews, your source for up-to-the-microsecond misinformation. [[File:TV-14.png]] was on Adult Channels, Heck No! it was 18 (21 in some areas and requires with wives or husbands). This article may not be suitable for all audiences. This article contains content not suitable for people with the brain of a person under 14 inches (35.5cm) tall or TransVestites. NOT SAFE FOR WORK!! [[File:nycny.png]] The article you are looking at may not be work safe! ...Although, since you're already here it's kind of too late for this warning to actually be useful. If a boss or coworker sees this article, claim that it was spam and blame the IT guys. Otherwise, continue to read it until your lewd urges are satisfied. 24 November 2007 TV-14-S (edited) TV-MA TV-ADULT (uncut) sometimes on dls. [[File:TV-PG.png]] was on G×× Pride Pinky Dinky Doo and Tyler the one is younger guinea pig is youngest she is the oldest because of 7 year old girl. [[File:AlvinXXX.png]] Shout Alvin and the Chipmunks have Beers, wines, Alcohal and Drug and Knife and Violent Refrences Lot of People gets the X rating and is no longer considered safe to 17- yr old kids' developing minds.UNDER 18 IS EXIT AND OVER 18 IS ENTER Why [[Alvin and The Chipmunks]] bad for kids was G all ages with cartoons and PG no cartoons but 9 and under needs a parent for PG. Breaking news! ALVIN, New York City, New York --The popular children's show[[Chipmunks]] has been given an adults only|[[Rated R]] rating by the Board of Family Friendly Ratings Safety Commission. It has given the long-running show this new rating after an intense and through review, the Board has announced yesterday. FOX, Syndicated, Sesame Workshop, CNN's HLNNews http://images1.wikia.nocookie.net/uncyclopedia/images/c/c9/Big_bird_pothead.JPG The camera man offers to light up Big Bird's pot. Sesame Street bad for kids? We report, you decide!Its website, http://www.sesameworkshop.com (along with all its directories and pages) were also blocked at school and replaced with a shock site. A producer for the show, Jason Haddad, said that “Not until on Breaking R×tarded!” Not only has the aging of our target audience caused Sesame Street to change every year to allow new viewers. But this has also forced us to change the content of the show to meet society's standards. This new content contains the following: Violence: E×clipit Violence Alcohol and drug references Blood (lotsa lotsa blood!) Cookies Big Bird smoking pot and having delusions of a character named "Snuffleupagus" Sumo (NSFW) Oscar the Grouch's bipolar disorder Attmepts to eat disorders Cookie Monster's diabetes Smoking and eating pipes Ernie and Bert's h×mos×xuality Fatties (NSFW) Pedophilia (Especially an episode in which Bert is revealed to be an online predator) The Count's chronic masturbation Condoms Teenage pregnancy Urination fetishes Severe diarrhea "Fuzzy and Blue" supremacists: racism "No Dogs and Birds" allowed: discrimination "Girls can't play b××× and can't think too": s××ism Most popular episode #98765- Race war or Genocide. "The show could no longer suit the needs of today’s preschool child," said the producer "So we had to change the content of the show to meet the needs to modern3-7year-olds' needs." Bert and Ernie are expected to come out this season.It was reported that the SesameWorkshopcharacters formed their own gang, putJamie Foxx out of business and possibly murdered him as well during the Battle of Chipmunks The first episode this season, entitled "Trapped in the Closet", will take place in Seattle, Wahington where Bert and Ernie take part in a g×× pride parade, revealing their h×mos×xuality. was 1°C and 0°F "We've been wanting to do that one for years," says Frank Oz, the longtime voice of Bert. "But SW and the parents would have sued our a××es a long time ago." [[File:Untitled-2.png]] on Valintine's (M without Silence) Day it is the NEW "Kick My A×× and B×××s Sh×× Up" it's like meatballs or basketballs something like that instead of saying balls It has also been announced by the studio in charge of the production has also contacted "Fisher Price" to include profanity in the new "Kick My Ass Elmo" just in time for the Christmas holiday, and the popular toy will now contain phrases such as "go eat sh×× sl×××y" and "Dad's a ×××××××× q×eer and you know it!!" and "oh my g×d" the clean version was "Oh My Gosh" instead of God. "We hope this new show can meet the needs of modern society unlike our previously outdated piece-of-shit show" said Henson. [edit] New Movie Coming Out Not only has Alvin and the Chipmunks been giving a rating not suitable for kids, but it has a new movie coming out called "Alvin and the Chipmunks: The Movie" is rated PG-13 or above that also has stuff not suitable for kids under 16-17 (18+ without), like blood, hate, farts and burps, h×mos×xuality and s×× It is unknown when this will be released. PG-13 was 13 and up off 15- iffy 16-17 on 18+ [edit] Sources Virginia Heffernan "Sweeping the Clouds Away". The New York Times, November 18, 2007 <gallery></gallery>×°€←→§§[[User:JasonHaddad|JasonHaddad]] ([[User talk:JasonHaddad#top|<span class="signature-talk">talk</span>]]) 02:01, 25 January 2010 (UTC)<!-- <nowiki><includeonly><noinclude></noinclude></includeonly></nowiki> --><s><small><sup><sub><tt><code><pre>&nbsp;</pre></code></tt></sub></sup></small></s><nowiki>KIDS</nowiki>== PLEASE TELL MOM AND DAD if you are a kid and read this #RED[[Category:[[:File:[[Media:{{DEFAULTSORT:{{NAMESPACE}}{{PAGENAME}}#REDIRECT [[]]}}]]]]]]IRECT {{{READ THAT:}}} <includeonly>ADULTS ONLY</includeonly> == don't see this if you are a little boy or girl laugh out loud Yes, I sign in or register to see and am over 18 (21 in some areas and/or required with husbands and wives) years old and Allowed with girlfriend, or boyfriend or by myself! that's it. BUT NOT MOM DAD OR OTHERS. (http://commons.wikimedia.org/wiki/User_talk:JasonHaddad#CNN.27s_HLNNews.2FFOX.2FSyndicated.2FCustomized:_Alvin_and_the_Chipmunks_Rated_TV-MA_.28CNN.27s_HLNNews.2FFOX.2FSyndicated.2FCustomized:_Alvin_and_the_Chipmunks_Rated_X.29) ---- No, I do not sign in or register to see and am under 18/21 years old to not see i use kids and hate adults (http://www.google.com/proflies/antoblingsux) [[[|{{{{{–—“‘«‹„‚•·‘“›»’”}}}}}]]]{{tlx|subject|Talk To Me Rocket000 and Lot of People}} gg9ep3lxhsgz86eu0qr2n223f441mjb User:Duplode/Haskell leftovers 2 227956 4668236 4592588 2026-09-03T12:13:03Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668236 wikitext text/x-wiki == Old VarFun section on where == So far we have seen two sorts of <code>r</code> in the examples: a variable, which stores some value of our choice, and a parameter of a function (say, <code>area r</code>). But what would happen if we use both at the same time? Say I type something in like this (don't type it in yet): Prelude> let r = 0 Prelude> let area r = pi * r ^ 2 Prelude> area 5 What do you think that should happen here? Will <code>area</code> work as expected or are we in for an unpleasant surprise? Think about an answer, then test it, see if it was what you expected and then follow on with the text... (...) === Scope and parameters === :'''Warning: this section contains spoilers to the previous "exercise"''' Fortunately, the following fragment of code does not contain any unpleasant surprises: Prelude> let r = 0 Prelude> let area r = pi * r ^ 2 Prelude> area 5 78.53981633974483 An unpleasant surprise here would have been getting the value 0 because of the <code>let r = 0</code> definition getting in the way. That does not happen because when you defined r the second time is that you are talking about a ''different'' r. This is something that happens in real life as well. How many people do you know that have the name John? What's interesting about people named John is that most of the time, you can talk about "John" to your friends, and depending on the context, your friends will know which John you are referring to. Programming has something similar to context, called '''[[Wikipedia:Scope (programming)|scope]]'''. We won't explain the technicalities behind scope (at least not now), but Haskell's lexical scope is the magic that lets us define two different r and always get the right one back depending on context. Thanks to scope, the value of a parameter is strictly what you pass in when you call the function. Informally, we could say the <code>r</code> in <code>let r = 0</code> is not the same <code>r</code> as the one inside our defined function <code>area</code> - the <code>r</code> inside <code>area</code> overrides the other <code>r</code>; you can think of it as Haskell picking the most specific version of <code>r</code> there is. If you have many friends all named John, you go with the one which just makes more sense and is specific to the context; similarly, what value of r we get depends on the scope. === where clauses === ''Readers: don't worry about this missing section. As of now where clauses are explained [[Haskell/More on functions|later on]], and there is no need to rush over there to check them. This is just a placeholder for when they are moved to this section in the near future.'' == Old VarFun/Type basics introduction to types == <!-- This example is plain broken. I eagerly await for when we find ourselves in a position to replace it --> Let us have another look at the circumference examples in [[Haskell/Variables and functions|Variables and functions]]. While playing around with the expressions you might be tempted to try storing a plain value such as <code>5</code> or <code>25</code> and using it in other expressions. Let's see what happens: <pre> Prelude> let r = 25 Prelude> 2 * pi * r <interactive>:1:9: Couldn't match `Double' against `Integer' Expected type: Double Inferred type: Integer In the second argument of `(*)', namely `r' In the definition of `it': it = 2 * pi * r </pre> Whoops! You've just run into a programming concept known as '''types'''. Types are a feature of many programming languages which are designed to catch some of your programming errors early on so that you find out about them before it's too late. One simple analogy for us to start with are plugs and connectors. For example, many of the plugs on the back of your computer are designed to have different shapes and sizes for a purpose. This is partly so that you don't inadvertently plug the wrong bits of your computer together and blow something up. Types serve a similar purpose, but in this particular example, well, types aren't so helpful. The tricky bit here is that numbers like <code>25</code> can be interpreted as being <code>Integer</code> or <code>Double</code> (<code>Double</code> is one of several types for representing real numbers). For lack of other information, Haskell has "guessed" that its type must be <code>Integer</code> (which cannot be multiplied with a <code>Double</code>). To work around this, we simply insist that it is to be treated as a <code>Double</code> <pre> Prelude> let r = 25 :: Double Prelude> 2 * pi * r 157.07963267948966 </pre> Note that Haskell only has this "guessing" behaviour in contexts where it does not have enough information to infer the type of something. As we will see below, most of the time, the surrounding context gives us all of the information that is needed to determine, say, if a number is to be treated as an <code>Integer</code> or not. {{body note|1= There is actually a little bit more subtlety behind this problem. It involves a language feature known as the '''monomorphism restriction'''. You don't actually need to know about this for now, so you can skip over this note if you just want to keep a brisk pace. Instead of specifying the type <code>Double</code>, you also could have given it a '''polymorphic''' type, like <code>Num a => a</code>, which means "any type <code>a</code> which belongs in the class <code>Num</code>". The corresponding code looks like this and works just as seamlessly as before: <pre> Prelude> let r :: Num a => a ; r = 25 Prelude> 2 * pi * r 157.07963267948966</pre> Haskell could <em>in theory</em> assign such polymorphic types systematically, instead of defaulting to some potentially incorrect guess, like Integer. But in the real world, this could lead to values being needlessly duplicated or recomputed. To avoid this potential trap, the designers of the Haskell language opted for a more prudent "monomorphism restriction". It means that values may only have a polymorphic type if it can be inferred from the context, or if you explicitly give it one. Otherwise, the compiler is forced to choose a default monomorphic (i.e. non-polymorphic) type. This feature is somewhat controversial. It can even be disabled with the GHC flag (-fno-monomorphism-restriction), but it comes with some risk for inefficiency. Besides, in most cases, it is just as easy to specify the type explicitly. }} == Reworked sections of Type basics == === Boolean values === One of the other types found in most languages is called a Boolean, or Bool for short. This has two values: true and false. This turns out to be very useful. For example, consider a program that would ask the user for a name then look that name up in a spreadsheet. It might be useful to have a function, <code>nameExists</code>, which indicates whether or not the name of the user exists in the spreadsheet. If it ''does exist'', you could say that it is ''true'' that the name exists, and if not, you could say that it is ''false'' that the name exists. So we've come across Bools. The two ''values'' of bools are, as we've mentioned, true and false. In Haskell, boolean values are capitalized (for reasons that will later become clear): {{HaskellExample|Exploring the types of True and False in GHCi| <pre> Prelude> :t True True :: Bool Prelude> :t False False :: Bool </pre> }} This shouldn't need too much explaining at this point. The values True and False are categorized as Booleans, that is to say, they have type Bool. === Numeric types === If you've been playing around with typing :t on all the familiar values you've come across, perhaps you've run into the following complication: Prelude> :t 5 5 :: (Num t) => t We'll defer the full explanation of this until later. The short version of the story is that there are many different types of numbers (fractions, whole numbers, etc) and <code>5</code> can be any one of them. This weird-looking type relates to a Haskell feature called [[../Class_Declarations/|type classes]], which we will be playing with later in this book. == Type signatures in code == ''As of [http://en.wikibooks.org/w/index.php?title=Haskell/Type_basics&oldid=1827970 this revision of Type Basics].'' ''Readers: As of now there are a few forward references in this section. We are in the process of sorting out some module sequencing issues, which means that problem will be solved soon. In the meantime, you might prefer to go through the next module, "Lists and tuples" and then return here to finish this one.'' Now we've explored the basic theory behind types as well as how they apply to Haskell, let's look at how they appear in actual code. The first thing to point out is that it is a good practice to ''annotate'' every function with its associated type. For an applied example, let us have a look at a very small ''module'' (modules in Haskell are just a neat way of making a library by packing functions for usage in other programs. No need to worry with details now). {{HaskellExample|Module without type signatures| <source lang = "haskell"> module StringManip where import Data.Char uppercase = map toUpper lowercase = map toLower capitalise x = let capWord [] = [] capWord (x:xs) = toUpper x : xs in unwords (map capWord (words x)) </source> }} This tiny library provides two handy string manipulation functions. <code>uppercase</code> converts a string to uppercase, <code>lowercase</code> to lowercase, and <code>capitalize</code> capitalizes the first letter of every word. Each of these functions takes a String as argument and evaluates to another String. For now, don't worry with how the code actually works, as it is obviously full of features we haven't discussed yet. Anyway - and specially because we don't understand the implementation yet - stating the type for these functions explicitly would make their roles more obvious. For example, most Haskellers would write the above module something like the following: {{HaskellExample|Module with type signatures| <source lang = "haskell"> module StringManip where import Data.Char uppercase, lowercase :: String -> String uppercase = map toUpper lowercase = map toLower capitalise :: String -> String capitalise x = let capWord [] = [] capWord (x:xs) = toUpper x : xs in unwords (map capWord (words x)) </source> }} The added signatures inform the type of the functions to both the interpreter/compiler and the human readers. Note that you can group type signatures together into a single type signature (like ours for <code>uppercase</code> and <code>lowercase</code> above) if the two functions share the same type. === Type inference === We just said that type signatures tell the interpreter (or compiler) what the function type is. However, in the modules before this one you wrote perfectly good Haskell code without any signatures, and it has been accepted by GHC/GHCi. That means it's not strictly necessary to add type signatures. But that doesn't mean that if you don't add type signatures Haskell simply forgets about typing altogether! Indeed, when you didn't tell Haskell the types of your functions and variables, it ''figured them out''. This is a process called ''type inference'', in which the compiler starts with the types of things it knows, then works out the types of the rest of the things. Type inference for Haskell is ''decidable'', which means that the compiler can ''always'' work out the types, even if you never write them in <ref>Some of the newer type system extensions to GHC ''do'' break this, however, so you're better off just always putting down types anyway.</ref>. Let's look at some examples to see how the compiler works out types. {{HaskellExample|Simple type inference| <source lang = "haskell"> -- We're deliberately not providing a type signature for this function isL c = c == 'l' </source> }} This function takes a character and sees if it is an <code>'l'</code> character. The compiler ''derives'' the type for <code>isL</code> through a process like the following: {{HaskellExample|A typing derivation| <pre> (==) :: a -> a -> Bool 'l' :: Char Replacing the second ''a'' in the signature for (==) with the type of 'l': (==) :: Char -> Char -> Bool isL :: Char -> Bool </pre> }} The first line indicates that the type of the function <code>(==)</code>, which tests for equality, is <code>a -> a -> Bool</code> (you can think of the <code>a</code> as a placeholder which stands for any type - <code>(==)</code> will accept any two arguments as long as they are of the same type. That is called a ''polymorphic function'') <!-- This needs to be reworked when the introduction to polymorphism is finished --> <ref>This is a slight lie. That type signature would mean that you can compare two values of any type whatsoever, but this clearly isn't true: how can you see if two functions are equal? Haskell includes a kind of 'restricted polymorphism' that allows type variables to range over some, but not all types. Haskell implements this using ''type classes'', which we'll learn about later. In this case, the correct type of <code>(==)</code> is <code>Eq a => a -> a -> Bool</code>.</ref>. The compiler also knows that something in single quotes has type Char, so clearly the literal <code>'l'</code> has type Char. Next, the compiler starts replacing the type variables in the signature for <code>(==)</code> with the types it knows. Note that in one step, we went from <code>a -> a -> Bool</code> to <code>Char -> Char -> Bool</code>, because the type variable <code>a</code> was used in both the first and second argument, so they need to be the same. And so we arrive at a function that takes a single argument (whose type we don't know yet, but hold on!) and applies it as the first argument to <code>(==)</code>. We have a particular ''instance'' of the polymorphic type of <code>(==)</code>, that is, here, we're talking about <code>(==) :: Char -> Char -> Bool</code> because we know that we're comparing Chars. Therefore, as <code>(==) :: Char -> Char -> Bool</code> and we're feeding the parameter into the first argument to <code>(==)</code>, we know that the parameter has the type of Char. Phew! But wait, we're not finished yet... What's the return type of the function? Thankfully, this bit is a bit easier. We've fed two Chars into a function which (in this case) has type <code>Char -> Char -> Bool</code>, so we must have a Bool. Note that the return value from the call to <code>(==)</code> becomes the return value of our <code>isL</code> function. So, let's put it all together. <code>isL</code> is a function that takes a single argument. We discovered that this argument must be of type Char. Finally, we derived that we return a Bool. So, we can confidently say that <code>isL</code> has the type: {{HaskellExample|<code>isL</code> with a type| <source lang = "haskell"> isL :: Char -> Bool isL c = c == 'l' </source> }} And, indeed, if you miss out the type signature, the Haskell compiler will discover this on its own, using exactly the same method we've just run through. So if type signatures are optional, why bother with them at all? Here are a few reasons: * '''Documentation''': the most prominent reason is that it makes your code easier to read. With most functions, the name of the function along with the type of the function is sufficient to guess at what the function does. Of course, you should always comment your code properly too, but having the types clearly stated helps a lot anyway.<!-- add a discreet note on Haddock later --> * '''Debugging''': if you annotate a function with a type, then make a typo in the body of the function, the compiler will tell you ''at compile-time'' that your function is wrong. Leaving off the type signature could have the effect of allowing your function to compile, and the compiler would assign it an erroneous type. You wouldn't know until you ran your program that it was wrong. In fact, since this is such a crucial point we will explore it some more. === Types prevent errors === Imagine you have a few functions set up like the following: <!-- I think now I see why to add basic pattern matching in Truth values, and stand corrected --> {{HaskellExample|Type inference at work| <source lang = "haskell"> fiveOrSix :: Bool -> Int fiveOrSix True = 5 fiveOrSix False = 6 pairToInt :: (Bool, String) -> Int pairToInt x = fiveOrSix (fst x) </source> }} Our function <code>fiveOrSix</code> takes a Bool. When <code>pairToInt</code> receives its arguments, it knows, because of the type signature we've annotated it with, that the first element of the pair is a Bool. So, we could extract this using <code>fst</code> and pass that into <code>fiveOrSix</code>, and this would work, because the type of the first element of the pair and the type of the argument to <code>fiveOrSix</code> are the same. This is really central to typed languages. When passing expressions around you have to make sure the types match up like they did here. If they don't, you'll get ''type errors'' when you try to compile; your program won't ''typecheck''. This is really how types help you to keep your programs bug-free. To take a very trivial example: {{HaskellExample|A non-typechecking program| <source lang = "haskell"> "hello" + " world" </source> }} Having that line as part of your program will make it fail to compile, because you can't add two strings together! In all likelihood the intention was to use the similar-looking string concatenation operator, which joins two strings together into a single one: {{HaskellExample|Our erroneous program, fixed| <source lang = "haskell"> "hello" ++ " world" </source> }} An easy typo to make, but because you use Haskell, it was caught when you tried to compile. You didn't have to wait until you ran the program for the bug to become apparent. This was only a simple example. However, the idea of types being a system to catch mistakes works on a much larger scale too. In general, when you make a change to your program, you'll change the type of one of the elements. If this change isn't something that you intended, or has unforeseen consequences, then it will show up immediately. A lot of Haskell programmers remark that once they have fixed all the type errors in their programs, and their programs compile, that they tend to "just work": run flawlessly at the first time, with only minor problems. ''Run-time errors'', where your program goes wrong when you run it rather than when you compile it, are much rarer in Haskell than in other languages. This is a huge advantage of having a strong type system like Haskell does. {{Exercises| Infer the types of following functions: # <code><nowiki>f x y = uppercase (x ++ y)</nowiki></code> # <code><nowiki>g (x,y) = fiveOrSix (isL x) - ord y</nowiki></code> # <code><nowiki>h x y = pairToInt (fst x,y) + snd x + length y</nowiki></code> <!-- ''FIXME'' more to come... --> }} k4kfftsfaez3rjw7xl6vbmeadeosd8x User talk:Frozen Wind 3 230197 4668377 4650290 2026-09-03T15:06:59Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668377 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, I-20!</div> <div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#15304f;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[Image:Crystal Clear app kedit.png|20px]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/> You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]]. If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed. </div> <div style="border-bottom:1px solid #15304f; background-color:#2a62a1;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[Image:Icon apps query.svg|20px]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project. * Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed. * Get help from the community in the [[WB:HELP|user assistance room]] or in our [[irc:wikibooks|IRC channel]]. * Files must be uploaded to [[commons:Wikimedia Commons|Wikimedia Commons]], unless they are copyrighted and need to be uploaded here under [[w:fair use|fair use]]. If you need to upload a fair use file, you may [[WB:RFP|request permission]] to do so. Please be sure to provide the required {{tlx|information}}: a [[WB:FILES|license tag]] and source are always required; fair use images require a {{tlx|fair use rationale}}. </div> </div> <div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Transmission icon.png|20px]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving. * Sign your name on [[Help:Talk page|discussion pages]] by typing &#126;&#126;&#126;&#126; * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[Image:Nuvola filesystems trashcan full.png|20px]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * '''Please make sure you follow our [[WB:NP|naming policy]]''' - modules should be named like <code>Book Title/Chapter Title</code>. * Need to rename a page? Use the ''move'' tab (only becomes available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<sup>[[User talk:Adrignola|talk]]&nbsp;[[Special:Contributions/Adrignola|contribs]]</sup> 18:38, 23 June 2010 (UTC)</div> </div> <div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div> == Can you please clarify you position == Regarding your vote on the [[Wikibooks:FlaggedRevs Extension/Unstable]] proposal, since you indicate a support for other proposals. Can you please clarify you position. Even change to objection and state what you object to, maybe others will support you on the changes you see as required. Thanks. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 01:01, 3 July 2010 (UTC) :There are 2 changes you have not yet shown support for. :#Allow anyone to mark a page as reviewed to the 3rd level. :#Prevent admins from setting filters to automatically block. :Do you support these changes? The revision number is [{{fullurl:Wikibooks:Reading room/General#Reconfigure Wikibooks|oldid=1873833}} 1873833] [[User:Arlen22|Arlen22]] ([[User talk:Arlen22|talk]]) 15:52, 5 July 2010 (UTC) ::Support #1, oppose #2 (very vague). '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 17:00, 5 July 2010 (UTC) == Congratulations == Congratulations on triggering the first hit on the [[Special:AbuseFilter|edit filter]] extension. You've officially broken it in! &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 01:00, 17 August 2010 (UTC) : Accidentally, of course. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 01:03, 17 August 2010 (UTC) == "American" time == I wasn't aware Americans had their own method of measuring time... Midnight would be 12:00 a.m. on the 12-hour clock. Those in the military, medical, or other fields with 24-hour operations will use the 24-hour clock where midnight would be 0:00. Not all Americans use the 12-hour clock. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 17:19, 17 August 2010 (UTC) : Agreed. I personally use 12-hour time. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 17:22, 17 August 2010 (UTC) == Rollback == See [[Help:Editing#Rollback]]. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 23:00, 17 August 2010 (UTC) : There is mergable content. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 23:01, 17 August 2010 (UTC) == FYI == It didn't make sense to me that we should have to import 500 templates for [[Template:Language icon]], with each one just having a single word contained. So I modified {{tl|language icon}} to use a switch instead, outputting the language name based on the ISO 639 input. The list is not yet complete, but this is a far more elegant solution. That saves us 1000 imports over Wikipedia's default code, where "Template:SUL Box" called "Template:xx icon" which called "Template:Language icon|xx" which called "Template:ISO 639 name xx". Too much nesting! &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 12:01, 21 August 2010 (UTC) : Too much nesting is one reason why I don't care for people to import or copy templates over from Wikipedia. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 12:10, 21 August 2010 (UTC) :: Ah, we see why Wikipedia is bad. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 12:33, 21 August 2010 (UTC) ::If that's a jab at me, too bad. I improve many of them and simplify them as noted above. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 12:34, 21 August 2010 (UTC) :::That wasn't an intended comment per se. I'm just saying that Wikipedia's template structure is too complex for us. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 12:36, 21 August 2010 (UTC) ::::That was more to Darklama. I agree that the templates can be complex; I've simplified many of them down, all the way back to when I brought in [[Template:User language]] from Meta to replace all the <code>User xx-X</code> templates. But that doesn't mean that a lot of the templates at Wikipedia can't be useful to us. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 12:38, 21 August 2010 (UTC) ::: Not a jab. I just cringe whenever I see people import or copy over a lot of templates because that tends to look like they think the templates could be useful some day without any plans to use them, which results in a lot of unused templates. I tend to be somewhat relieved whenever I see you simplify templates down, but I still often question whether anyone will actually be making use of the templates. I've seen what appears to be at times you changing your mind about the usefulness of a template because you sometimes delete templates that you imported. I think there would be less of that if you only imported templates you plan to use right away yourself or other people requested that you imported. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 12:48, 21 August 2010 (UTC) ::::I don't know whether it's clear in recent changes, but sometimes my imports are simply to get the histories for templates that were already here. I'll mark those as "history merge/update". Like stated in another discussion, Wikipedia has a hundred citation templates while we have a fraction of that. I ''could'' have imported all those, but didn't. Sometimes new templates imported are dependencies for the template I'm really interested in. I won't deny that in some cases I've brought in a template I found really useful and felt should be part of our "standard library". &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 13:07, 21 August 2010 (UTC) ::::: I share the same sentiments you convey below about templates. If nobody here is likely to use it, there's no point in trying to make it part of any "standard library". Time suggests that Wikibooks has little use for a "standard library" of templates because most standards are book specific. Organizational and maintenance templates tend to be the only exceptions that withstand the test of time. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 17:25, 22 August 2010 (UTC) == Transwiki == Please don't bring in content that someone's just slapped a tag on at Wikipedia. If nobody here is likely to use it, there's no point in bringing it over, for it to duplicate content at Wikipedia and become out of date with the original. People can request the imports at [[WB:RFI]] if it's really needed. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 14:59, 22 August 2010 (UTC) : You can delete it. Thanks for letting me know. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 15:00, 22 August 2010 (UTC) == Clarification == I'm confused by your comment on "B.S. from Wikiversity". What do you mean? This issue has been discussed at Wikiversity, yes, but also Wikisource, Commons, and Wikinews. The global lock affected all the projects. What makes Wikiversity stand out? &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 14:02, 5 September 2010 (UTC) : Well, Jimbo did his reign on Wikiversity... '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 14:12, 5 September 2010 (UTC) == Sorry == Sorry about that. I hit the wrong block link in the page history for the spammer. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 18:49, 5 September 2010 (UTC) : Humans make mistakes. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 18:50, 5 September 2010 (UTC) ::Ah, but [[User_talk:Adrignola/2010/06#You_are_a_bot.3F.21.3F|some think I am a bot]]. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 20:25, 5 September 2010 (UTC) == Edit Filter == If you're going to email it to me, please do so... &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 00:00, 21 September 2010 (UTC) : Will do. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 00:30, 21 September 2010 (UTC) :: Test Wikipedia is currently acting up, please hold until I can nag #wikimedia-tech. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 00:33, 21 September 2010 (UTC) == Renamed == You have been renamed. Please visit [[Special:MergeAccount]] and let me know if there's anything else you need. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 01:21, 30 September 2010 (UTC) ==[[:NetBeans]]== {{tmbox|type=delete|text='''Frozen Wind, please [[Wikibooks:Requests for deletion#NetBeans|share your thoughts]] about whether to [[WB:WIW|keep]] or [[WB:DP|delete]] "[[:NetBeans|NetBeans]]".'''<br />You are being notified because you have contributed to this work. [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 16:51, 17 August 2024 (UTC)}} ==[[:UNIX Basics]]== {{tmbox|type=delete|text='''Frozen Wind, please [[Wikibooks:Requests for deletion#UNIX Basics|share your thoughts]] about whether to [[WB:WIW|keep]] or [[WB:DP|delete]] "[[:UNIX Basics|UNIX Basics]]".'''<br />You are being notified because you have contributed to this work. [[User:Kittycataclysm|Kittycataclysm]] ([[User talk:Kittycataclysm|discuss]] • [[Special:Contributions/Kittycataclysm|contribs]]) 21:23, 7 September 2024 (UTC)}} g3fr4ggk6td166qkgrdfw6hzwclfy26 User talk:Frozen Wind/rollback.js 3 237801 4668364 1941064 2026-09-03T14:53:24Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668364 wikitext text/x-wiki ;Usage To install [[User:I-20/rollback.js]], add the following to [[Special:Mypage/monobook.js]] as a logged-in user using the monobook skin: <source lang="javascript"> importScript('User:I-20/rollback.js'); </source> On diff pages, history pages, user contribution pages, recent changes, and personal watchlists, a "sum" link will appear next to the "rollback" link. When you click on "sum", you will be prompted to enter a summary. Press Cancel to cancel, or leave a blank summary to use the default. In the summary, the text "$user" will automatically be replaced with the user name you're reverting. e.g., "<code>rv edits by $user; not true</code>". Then press OK to submit. ;Extra options To disable the link from appearing on any one of the pages, add a line containing a list after the "importScript" statement. The options are 'diff', 'history', 'user', 'recent', and 'watchlist'. For example, to disable the link on history pages and user contribution pages: <source lang="javascript"> rollbackLinksDisable = [ 'history', 'user' ] </source> In addition, there is an option to have default text in the summary pop-up instead of a blank text field. For example: <source lang="javascript"> rollbackSummaryDefault = "[[WP:RBK|Reverted]] edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last version by $1" </source> ;Finally None of the above affects how rollback is done if you use the 'rollback' link instead of the 'sum' link. Please contact if there are any problems :) [[User:Gracenotes|<span style="color:#960;">Grace</span><span style="color:#000;">notes</span>]]<sup>[[User talk:Gracenotes|<span style="color:#960;">T</span>]]</sup> <span title="User talk:Gracenotes/rollback.js">§</span> ;Imported From [[w:User_talk:Gracenotes/rollback.js‎]]. '''—[[User:I-20|<span style="color:black">I-20</span>]][[User talk:I-20|<span style="vertical-align:super;">the highway</span>]]''' 15:32, 17 August 2010 (UTC) ;Comments qrpctbndex01jybtv1gg1fzepm4tfv5 User talk:900674user 3 239889 4668246 4593241 2026-09-03T12:25:03Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668246 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, 900674user!</div> <div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{Text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#15304f; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[File:Crystal Clear app kedit.png|20px|link=]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/> You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]]. If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed. </div> <div style="border-bottom:1px solid #15304f; background-color:#2a62a1;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[File:Icon apps query.svg|20px|link=]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project. * Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed. * Get help from the community in the [[WB:HELP|user assistance room]] or in our [[irc:wikibooks|IRC channel]]. * Files must be uploaded to [[commons:Wikimedia Commons|Wikimedia Commons]], unless they are copyrighted and need to be uploaded here under [[w:fair use|fair use]]. If you need to upload a [[Wikibooks:MEDIA#Non-free use|non-free]] file, you may [[WB:RFP|request permission]] to do so. Please be sure to provide the required {{tl|information}}: a [[WB:FILES|license tag]] and source are always required; non-free files require a {{nowrap|{{tl|non-free use rationale}}}}. </div> </div> <div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{Text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3;{{Text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[File:Transmission icon.png|20px|link=]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving. * Sign your name on [[Help:Talk page|discussion pages]] by typing &#126;&#126;&#126;&#126; * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[File:Nuvola filesystems trashcan full.png|20px|link=]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * '''Please make sure you follow our [[WB:NP|naming policy]]''' - pages should be named like <code>Book Title/Chapter Title</code>. * Need to rename a page? Use the ''move'' tab (only becomes available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 00:28, 8 September 2010 (UTC)</div> </div> <div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div> 6y5bnozlqe9pnygnqn7hwilp3ft7ve9 User talk:Brotonamobay 3 241262 4668410 4593643 2026-09-03T15:38:31Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668410 wikitext text/x-wiki <div style="font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, Brotonamobay!</div> <div style="width:55%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#15304f;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#f4eed7;">[[File:Crystal Clear app kedit.png|20px|link=]] '''First steps tutorial'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for freely-licensed collaboratively-developed [[WB:WIW|textbooks]].'''<br/> You don't need technical skills in order to contribute here. '''[[WB:BOLD|Be bold]]''' contributing and ''[[WB:AGF|assume good faith]]'' about the intentions of others. Remember, this is a ''[[w:wiki|wiki]]'', so you're allowed to change just about anything, and changes can be made easily. Come [[Wikibooks:Reading room/General|introduce yourself]] to everyone, and let us know what [[Wikibooks:Reading room/Projects|interests you]]. If you're coming here from other Wikimedia projects, you should read [[Help:Wikibooks for Wikimedians|our primer for Wikimedians]] to get quickly up-to-speed. </div> <div style="border-bottom:1px solid #15304f; background-color:#2a62a1;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#e9deaf;">[[File:Icon apps query.svg|20px|link=]] '''Getting help'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> * See the '''Wikibooks [[Help:Contents|help pages]]''' for common issues, or read [[Using Wikibooks]] for a more user-friendly introduction to the project. * Remember, every edit is saved, so if you make mistakes, you can [[Wikibooks:Reverting|revert]] to an earlier version if needed. * Get help from the community in the [[WB:HELP|user assistance room]] or in our [[irc:wikibooks|IRC channel]]. * Files must be uploaded to [[commons:Wikimedia Commons|Wikimedia Commons]], unless they are copyrighted and need to be uploaded here under [[w:fair use|fair use]]. If you need to upload a [[Wikibooks:MEDIA#Non-free use|non-free]] file, you may [[WB:RFP|request permission]] to do so. Please be sure to provide the required {{tl|information}}: a [[WB:FILES|license tag]] and source are always required; non-free files require a {{nowrap|{{tl|non-free use rationale}}}}. </div> </div> <div style="width:43%; float:left; margin: .2em; border:1px solid #15304f; background-color:#f4eed7;{{text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3;{{text default color}}; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[File:Transmission icon.png|20px|link=]] '''Goodies, tips and tricks'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * Please fill in [[:w:Help:Edit summary|the edit summary]] and [[Help:Show preview|preview]] your edits before saving. * Sign your name on [[Help:Talk page|discussion pages]] by typing &#126;&#126;&#126;&#126; * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> <div style="border-bottom:1px solid #15304f; background-color:#5f96d3; padding:0.2em 0.5em 0.2em 0.5em; font-size:110%; font-weight:bold; color:#15304f;">[[File:Nuvola filesystems trashcan full.png|20px|link=]] '''Made a mistake?'''</div> <div style="border-bottom:1px solid #15304f; padding:0.4em 1em 0.3em 1em;"> * '''Please make sure you follow our [[WB:NP|naming policy]]''' - pages should be named like <code>Book Title/Chapter Title</code>. * Need to rename a page? Use the ''move'' tab (only becomes available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To get a page deleted, add {{tlx|delete|''your reason for requesting deletion''}} to the top of the page. * If something you wrote was deleted, please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page. </div> <div style="background-color:#transparent;color:inherit; padding:0.2em 0.5em 0.2em 0.5em;">Thanks. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 19:21, 6 October 2010 (UTC)</div> </div> <div style="clear: both; text-align:right; font-size:smaller">(P.S. Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div> ==Using Wikibooks for collaborative efforts== Given what your user page, I'd suggest [[Wikibooks:Guidelines for class projects]] as a page to see how your goals fit into Wikibooks' goals. Yes, it's not quite going to be in line with what you're thinking of, in that you are not a class of students, but its general suggestions should still hold. If your fellow "Bro.Gers" have a common interest, you could adopt an existing [[Wikibooks:WikiProject|WikiProject]] in a subject area or start a new one. On that page you would be able to coordinate efforts with one another, such as planning any new or existing books to work on. The <code>Wikibooks:</code> "namespace" is used for project coordination, so any pages of that sort should begin with that. There are many ways to contribute to Wikibooks. As long as you keep in mind [[Wikibooks:What is Wikibooks|Wikibooks' scope]], there should not be any problems. [[Using Wikibooks]] is an extensive book in itself on understanding the conventions here at Wikibooks, which will differ from what you've seen if you've ever participated at our sister project, Wikipedia. I and the other administrators are always around to provide assistance. Just let us know or you can ask questions at [[Wikibooks:Reading room/Assistance]]. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 19:21, 6 October 2010 (UTC) == The Untitled Bro.Gers Book == Please consider moving the book to [[User:Brotonamobay/The Untitled Bro.Gers Book|this page]]. This is because the readers of Wikibooks may not want to read a book without knowing what it's about. Thanks, [[User:Kayau|Kayau]] ([[User talk:Kayau|talk]] &#124; [[Special:Emailuser/Kayau|email]] &#124; [[Special:Contributions/Kayau|contribs]]) 08:43, 8 October 2010 (UTC) b6bx6fc8clgaew9eauz7ozmnkjvttve User talk:Adrignola/2011/01 3 246328 4668257 4645941 2026-09-03T12:49:03Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668257 wikitext text/x-wiki == You mistake hosting for planning a layout. == You thought that I was hosting, when I was just planning a layout, and it's not relevant under [[User:Wd930]]. :Hosting is very much still relevant in user space. If content in user space is not supporting work on Wikibooks, it doesn't belong here on Wikimedia servers. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 15:04, 2 January 2011 (UTC) If that's true, then can't I do that stuff in my sandbox, or the sandboxes (public)? == Thanks == Thanks for your recent help in formatting a contribution I have started to make. I still have a lot to learn about the process, grammar, and syntax. I appreciate you extra effort. I am interested also in learning about contributing images to the commons, because my field is very image-dependent. [[User:MJWhiteDerm|MJWhiteDerm]] ([[User talk:MJWhiteDerm|talk]]) 04:06, 4 January 2011 (UTC) :No problem. I try to "nurture" new contributors by leading by example and instructing on both the peculiarities of Wikibooks and the syntax of editing. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 04:39, 4 January 2011 (UTC) == Ongoing vandalism == Hi, could you please block {{user|70.157.40.15}}? He's been on a blanking spree, I can only revert him. You seem to be around judging by RC, so I thought I'd ask you. Thanks. [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 04:41, 6 January 2011 (UTC) :A feisty one. Blocked for two weeks. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 04:44, 6 January 2011 (UTC) ::Thank you! :-) [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 04:44, 6 January 2011 (UTC) == [[Wikibooks:Nurture]] == I would of tagged it with essay myself, but I wanted someone else to decide if it really should be an essay, or proposed as something more. A version of IAR is 1/3 right. I was looking at IAR, BEANS, and PRUNE, they all seemed like pages about nurturing works and the project in a healthy way to me. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 21:38, 3 January 2011 (UTC) :I'm sure many guidelines and policies originally started as essays. If one gains traction, it certainly could be proposed as something more. [[w:WP:PRUNE|WP:PRUNE]] and [[w:WP:BEANS|WP:BEANS]] don't seem to quite match up with the nurture page, though. We don't really have all that many rules, so suggestions to ignore them would need some justification. It should be interesting to see how the page develops. Possible extensions to the page might incorporate [[Wikibooks:Forking]] with regards to pruning on a larger scale. Sometimes I do feel like a gardener. More analogies: dead growth (inactive, poor-quality books) might be fertilized or removed, spread-out plants (shallow scope books) might be grafted together, weeds (vandalism) should be pulled. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 05:03, 4 January 2011 (UTC) :: I aimed for a positive tone and to be consistent, which is why they don't quiet match up. Plus WP:BEANS is a bit recursive in being a not to rule that tells you not to write not to rules. I wanted to avoid that, and I think I achieved some success in that by briefly mentioning how cautioning against unwise actions may give them the idea to do it, and from there began to focus on nurturing instead. I wrote it like that because I saw potential for expanding into the many ways we could be more nurturing which is a positive approach compared to the many not to pages that WP has. I did give a brief justification as to when rules should be ignored, "when a rule prevents healthy growth and maturity". Feel free to expand the page with more analogies and more ways to be nurturing. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 12:03, 4 January 2011 (UTC) ::: I added “Which means "Keep your nose clean"”. <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Wd930|Wd930]] ([[User talk:Wd930|talk]] • [[Special:Contributions/Wd930|contribs]]) </span></small><!-- Template:Unsigned --> :::: Neither beans nor noses are mentioned which unfortunately means keeping one's nose clean has no/is out of context. Also this essay isn't about keeping ones nose clean at all because gardening can get dirty which is the exact opposite of keeping your nose clean. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 23:32, 6 January 2011 (UTC) == Adrignola == That doesn't make sense, so I was still doing it after you said something about hosting. I thought that it is just a fun thing. Do you think that I should use a public sandbox, or mine? <small><span class="autosigned">—Preceding [[w:Wikipedia:Signatures|unsigned]] comment added by [[User:Wd930|Wd930]] ([[User talk:Wd930|talk]] • [[Special:Contributions/Wd930|contribs]]) </span></small><!-- Template:Unsigned --> :It's hard for me to say for sure, as I look at [[Special:PrefixIndex/User:Wd930|all the subpages of your user page]] in determining what the intention is. I could certainly see how some of it could be related to work for textbooks. [http://en.wikibooks.org/w/index.php?limit=50&tagfilter=&title=Special%3AContributions&contribs=user&target=Wd930&namespace=0&tagfilter=&year=&month=-1 You haven't made any edits at all to any textbooks] to provide an idea of which though. The username you are using is [http://toolserver.org/~vvv/sulutil.php?user=Wd930 blocked indefinitely] at Wikipedia as being a sockpuppet of the account WGroup, which had its content deleted as being unrelated to work there. It is for these reasons that I am a bit wary. Could clarify what your goals are, beyond a "fun thing"? &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 22:55, 6 January 2011 (UTC) == Copyright issue on charts == I am not sure about the copyrights on the charts hence wanted your suggetions. I have been using charts published online by various sites like yahoo / icharts.in / indiabulls (using metastock online). I have them on my blog http://learnthetrick.blogspot.com can I use these charts for the wikibook Technical analysis. :Raw "factual" data can't be protected by copyright, except if <s>the</s> you are directly using charts that have any special and unique design. It is also proper to quote the original source of the data (or the value of the chart will be null). --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|talk]]) 15:41, 9 January 2011 (UTC) :: Thank you that means I can create a chart from the published data and then use them in wikibooks. In fact I think to make the book genuinely worthy I will use chart made only from the factual data. [[User:Yndesai|Yndesai]] ([[User talk:Yndesai|talk]]) 16:01, 9 January 2011 (UTC) == Links to my old username == Hi! Could you edit [http://en.wikibooks.org/w/index.php?title=User_talk:Adrignola/2009/07&action=edit this protected archive] and fix my signatures as I did [http://en.wikibooks.org/w/index.php?title=Wikibooks_talk:Manual_of_Style/Archive_1&diff=prev&oldid=2015253 here]? Thanks you very much! [[:pt:User:Helder.wiki|Helder]] 20:51, 10 January 2011 (UTC) :[[File:Yes_check.svg|15px|link=|alt=]] '''Done'''. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 22:02, 10 January 2011 (UTC) == [[Bioinformatics]] text == I wasn't sure of the protocol. I wasn't happy with the text that I saw so I thought I'd start fresh. However, if the text has been abandoned I'd be happy to have me and my class appropriate it. Thanks, [[User:PaulWLepp|PaulWLepp]] ([[User talk:PaulWLepp|talk]]) OK. We will definitely take this project on. You can remove the Intro Bioinfo. page. I have a some experience with these - the Ecology text was largely written by my classes. [[User:PaulWLepp|PaulWLepp]] ([[User talk:PaulWLepp|talk]]) Say, can you also remove the flag at the top of the page? Thanks, [[User:PaulWLepp|PaulWLepp]] ([[User talk:PaulWLepp|talk]]) :[[File:Yes_check.svg|15px|link=|alt=]] '''Done'''. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 17:33, 12 January 2011 (UTC) == Edit Goal == According to [http://stats.wikimedia.org/wikibooks/EN/PlotDatabaseEdits1.png Edits Per Day] it would seem we've already likely surpassed the 2006 high in September 2009. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 05:14, 13 January 2011 (UTC) :One problem in comparing the two is that [[:File:English Wikibooks Edits.png]] uses totals for the month while the other shows totals per day. If edits per day were at a ''sustained'' higher value in 2006, then we might not have passed the high. Note the tight and tall collection of data points around July 2006 that contributed to that month's peak value. Using that graph's average trend line, it would suggest peak average was in September 2007, however, and using its metrics, our average has not surpassed that since. Averages have also dipped below fr.wikibooks and de.wikibooks a few times in the past, though the margin has widened since. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 13:47, 13 January 2011 (UTC) == Userbox merges? == I was thinking the educational, location, religion, and zodiac userboxes should be merged too like was done previously with the user language and programming language userboxes. They could become {{tl|user education}}, {{tl|user location}}, {{tl|user religion}}, and {{tl|user zodiac}} respectively. There may be other userbox templates with the same theme that might be worth merging as well, maybe like {{tl|user group}} to replace the administrator/bureaucrat/checkuser/etc userbox templates. What do you think? --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 22:39, 7 January 2011 (UTC) :I like the idea for user groups and zodiac signs for sure. Those already use similar designs and would be good candidates. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 22:42, 7 January 2011 (UTC) :: One done. One to go. I think the others should use a consistent style too though. Being consistent arguably would make them more neutral and would give the appearance of not favoring one person's education, location or religion over another. I think userboxes can be seen as a way to share a single or class of information about a user. I think by having a unified style for information in the same class, people will also be able to more quickly find and focus on what information is important to them. I've also been tempted to replace "This user is..." with "I..." --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 16:19, 15 January 2011 (UTC) :::Well, the others might not be hard to do as well. They'll probably have to employ switches, though. The education ones for degree types will probably be no trouble. Some of the religion ones are formatted to coordinate with the icons, so those might not look as good unified. But, feel free. I didn't import that many/all of the educationones so that will save the trouble bringing in the rest. The religion ones are a pain because Wikipedia moved them to User:UBX/* or deleted them entirely (making some religions entirely unrepresented). &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 16:43, 15 January 2011 (UTC) == Updating templates == Thanks for updating {{tl|tag}}. I'd gladly update other templates as well, but everything seems to be protected by default. The following templates should probable be updated from en.wiki as well: {{tl|reflist}}, {{tl|refbegin}} (fixes hanging indents!) and {{tl|refend}}. [[User:Edokter|Edokter]] ([[User talk:Edokter|talk]]) 19:35, 14 January 2011 (UTC) :Those have now been updated, along with their documentation and the CSS in [[MediaWiki:Common.css/References.css]]. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 20:06, 14 January 2011 (UTC) ::One minor point; {{tl|reflist}} should have <code>class="reflist references"</code> instead of <code>class="reflist references-small"</code> (or references-small should be added back to references.css; that class has been deprecated on en.wiki). [[User:Edokter|Edokter]] ([[User talk:Edokter|talk]]) 20:22, 14 January 2011 (UTC) :::Whoops. Missed that section of the documentation. The template itself now uses <code>class="reflist references"</code> too. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|talk]]</small> 20:31, 14 January 2011 (UTC) == Deleting redirect means broken links == Hi, I know you mean well in cleaning up the Programming: namespace. However, you must be aware that there are websites which link to content on WikiBooks, and some of these web sites were written before 2009. When I checked out a WikiBook linked from http://hype-free.blogspot.com/2007/08/postgresql-replace-into.html I found a disconcerting message: "This page has been deleted." The log says: deleted "[[Programming:Converting MySQL to PostgreSQL]]" ‎ (Orphaned or broken redirect: content was: '#REDIRECT [[Converting MySQL to PostgreSQL]]' (and the only contributor was 'Adrignola')) [[Converting MySQL to PostgreSQL]] is not orphaned/broken; rather, it is useful reference material. Please consider adding the redirect back so that people can find it! ([http://www.w3.org/Provider/Style/URI Cool URIs Don't Change]) Thanks, Patrick Horn [[Special:Contributions/67.188.214.127|67.188.214.127]] ([[User talk:67.188.214.127|discuss]]) 22:38, 15 January 2011 (UTC) :I know several books have been renamed with redirects suppressed. I haven't been the only one to delete on-wiki orphaned redirects. Potentially a compromise would be to retain only redirects for book roots, but that would still yield grief if a link was to a subpage. I like to think that the chain is not broken because I do ''not'' use clean deletion reasons and retain the former redirect's content in the notice that appears on the former location. The linked document argues for proper naming of links in the first place so that they don't ''have'' to be changed. I quote: "The message here is, however, that many, many things can change and your URIs can and should stay the same. They only can if you think about how you design them." Problem is, pages on Wikibooks can and ''do'' have to be changed. Naming convention fixes in the past create a single redirect. If none were deleted, whenever a new contributor comes along and renames ''any'' page of a book, we get a double redirect that has to be fixed by hand with no bots running at Wikibooks. If not fixed, readers visiting the first location for the content get stopped just as with the notice noted above and just as similarly have to click the redirect to continue on. Anyone else's thoughts on this? Let me know so I can plan future actions accordingly. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 04:45, 16 January 2011 (UTC) ::I agree that orphaned redirects should be deleted as they are detected, most of these deletion actions will have no other impact than to keep the project clean, having said that I must remark that this is probably not the most important task to do on the project, if anyone requests a restoration/fix it should be done, since this "pages" are clearly of marginal importance. The only reason I see as to require a deletion of a redirect is if the location is needed for a new book/page. Maintenance of redirects (fixing them) should be avoided, they should be just deleted but it should be up to the one acting on it, there need not be any consistency on the action. ::Requests to restore redirects because of outside linkage, like the one above, should be encouraged to first fix the source and some notice should be added to the redirect talk page if found that there is a valid reason to fix/maintain it, so to avoid revisiting the issue again and again. It is clearly beneficial to the project that links from outside continue to work... --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 06:12, 16 January 2011 (UTC) :::<[[w:WP:TPS|TPS]]>I agree with Adrignola and most of what Panic said, but I'm a bit sceptical about the part, 'they should be just deleted but it should be up to the one acting on it, there need not be any consistency on the action'. If there is no consistency on the action, one may argue that some redirects are 'treated unfairly'. [[:User:Kayau|Kayau]] {{toolbar|separator=dot |[[:User talk:Kayau|discuss]] |[[:Special:Emailuser/Kayau|email]] |[[:Special:Contributions/Kayau|contribs]] |[{{fullurl::Special:Log|user={{urlencode:Kayau}}}} <span style{{=}}"color:#002bb8">logs</span>] |[http://toolserver.org/~soxred93/pcount/index.php?name{{=}}{{urlencode:Kayau}}&lang{{=}}en&wiki{{=}}wikibooks <span style{{=}}"color:#002bb8">count</span>] }} 15:08, 16 January 2011 (UTC) ::::This is solved by documenting the need of the redirect on its talk page. I doubt that a deletion would occur if the admin was aware of the "special" situation, it would also clearly define that the redirect was intentional and state the party that has invested interest in its survival, permitting a dialog if the situation really needs a change. --[[User:Panic2k4|Panic]] ([[User talk:Panic2k4|discuss]] • [[Special:Contributions/Panic2k4|contribs]]) 15:36, 16 January 2011 (UTC) From [[Wikibooks:Deletion policy#Speedy deletions]]: "Orphaned redirects that do not conform with [[Wikibooks:Naming policy]] or where the names are unlikely to be inadvertently searched for by anyone." Programing: does not confirm with with our Naming policy. I think it is highly unlikely that most people would be surprised to find a link in a 3 year old archive is broken. Also if someone did search for "Converting MySQL to PostgreSQL" they would immediately find where it moved to. I think consistently and indiscriminately deleting redirects is what should be expected. However I admit when I've been deleting Programming: redirects I've been keeping the book/top-root redirect intact for now because of past discussions as to what extend redirects should be deleted or kept intact. Wiktionary uses a script to redirect people to the lowercase form of a definition when the capital form of a page does not exist. I have been thinking for some time now that we could do something similar for deleted redirects when a link to where the page has moved to is included in deletion reason. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 15:39, 16 January 2011 (UTC) == Question from Special:Userrights page == Hi, I have a Question fro you again. I have created a bug https://bugzilla.wikimedia.org/show_bug.cgi?id=26643 to gain some access to grant some rights like rollback. bug has fixed. i was asking 6 groups. it says they have added 6. but i only can see 3. What do you think? where is mistake? pls reply in [http://si.wikibooks.org/wiki/%E0%B6%B4%E0%B6%BB%E0%B7%92%E0%B7%81%E0%B7%93%E0%B6%BD%E0%B6%9A_%E0%B7%83%E0%B7%8F%E0%B6%9A%E0%B6%A0%E0%B7%8A%E0%B6%A1%E0%B7%8F%E0%B7%80:%E0%B6%B6%E0%B7%92%E0%B6%9F%E0%B7%94%E0%B7%80%E0%B7%8F here] [[User:බිඟුවා|බිඟුවා]] ([[User talk:බිඟුවා|discuss]] • [[Special:Contributions/බිඟුවා|contribs]]) 02:30, 17 January 2011 (UTC) Nice. Opened Jan 9, closed Jan 17. Meanwhile [[bugzilla:26344|bug 26344]] opened Dec 15 is still open. Quite a few [https://bugzilla.wikimedia.org/buglist.cgi?keywords=shell&query_format=advanced&keywords_type=allwords&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=VERIFIED&component=Site%20requests&resolution=---&product=Wikimedia requests] for LiquidThreads out there but I also see quite a few open requests. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 04:24, 17 January 2011 (UTC) :The bug is now closed. Thanks to whoever provided the encouragement, you good Samaritan, you. We can see, for instance, on [[:Category:Horticulture/Templates/Examples]] that links to parent categories are working (and the wiki has not crashed). I have a feeling that we're the first to turn on subpages for categories given our naming scheme. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 04:49, 18 January 2011 (UTC) == [[Template:Scrabble board]] == You want to take another look at the {{tl|Scrabble board}} template? It's no longer working with [[Scrabble/Playing the X]]. --[[User:Jomegat|Jomegat]] ([[User talk:Jomegat|discuss]] • [[Special:Contributions/Jomegat|contribs]]) 18:19, 18 January 2011 (UTC) : Should be fixed now. When Adrignola moved the other templates as subpages, he also updated the template using relative paths which means it was looking for "Scrabble/Playing the X/tile" and such. --<span style="font: bold 10pt 'courier new', comic, sans, ms;">[[User:Darklama|<span style="color: midnightblue;">dark</span>]][[User_talk:Darklama|<span style="color: green;">lama</span>]]</span> 19:13, 18 January 2011 (UTC) ::Thanks for the fix. We all have our days... &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 21:08, 18 January 2011 (UTC) == remove IP block == Hi. I'm trying to get an IP block removed. I detailed the situation here: http://en.wikibooks.org/wiki/Wikibooks:Reading_room/Administrative_Assistance Basically, I'm a long time contributor to wikibooks, I thought it might be fun to play with TOR, set up a TOR relay server on my computer (without knowing the Wikipedia consequences), and now my home IP address (96.228.140.71) is blocked from editing. As soon as I realized the problem, I stopped the TOR relay and uninstalled the software. Tempodivalse said you could put an IP block exempt on my account. I'm gearing up to write another wikibook over the next few months (with the help of my students) and would really like access again from my home account. Can you help? --[[User:Rcragun|Rcragun]] ([[User talk:Rcragun|discuss]] • [[Special:Contributions/Rcragun|contribs]]) 19:49, 19 January 2011 (UTC) : (Breaking in, here.) : I was just reading this thread at the reading room, and I'm a bit puzzled. I don't see any record of a block on 96.228.140.71, neither {{plainlinks|{{fullurl:Special:Log|type=block&user=96.228.140.71&month=-1}}|locally}} nor {{plainlinks|{{fullurl:meta:Special:Log|type=gblblock&user=96.228.140.71&month=-1}}|globally}}. --[[User:Pi zero|Pi zero]] ([[User talk:Pi zero|discuss]] • [[Special:Contributions/Pi zero|contribs]]) 19:53, 19 January 2011 (UTC) ::Per an admin (Kingpin13) at Wikipedia, it's apparently the TorBlock extension that is flagging the IP and preventing me from editing pages. Here's the actual message I receive when I try to edit: :::You do not have permission to edit this page, for the following reason: Your IP address, 96.228.140.71, has been automatically identified as a tor exit node. Editing through tor is blocked to prevent abuse. You can view and copy the source of this page: ::So, not sure if there is anything that can be done about it, but that's what he/she says is the problem.--[[User:Rcragun|Rcragun]] ([[User talk:Rcragun|discuss]] • [[Special:Contributions/Rcragun|contribs]]) 20:18, 19 January 2011 (UTC) :::If my understanding of MediaWiki's TorBlock is correct, and things haven't changed since I had the tools, then IPBE ''should'' fix this problem. A lot of people from China, the Middle East, etc., where WMF projects are sometimes blocked, have to use Tor, but can still edit via IPBE. ([[w:WP:IPBE]]: "It can also be used to allow editing via an anonymizing proxy such as Tor.") In the meantime, you could try to edit via a proxy service (a lot of web-based ones are free). [[User talk:Tempodivalse#top|'''''Tempodivalse''''']] 20:30, 19 January 2011 (UTC) Rcragun, you now have IP block exemption applied to your account, which should allow you to edit. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 20:36, 19 January 2011 (UTC) :Hooray! It works! Thank you! Lesson learned. I'll avoid tor in the future.--[[User:Rcragun|Rcragun]] ([[User talk:Rcragun|discuss]] • [[Special:Contributions/Rcragun|contribs]]) 20:44, 19 January 2011 (UTC) == The Guidance Barnstar == {| style="border: 1px solid gray; background-color: #fdffe7;{{Text default color}};" |rowspan="2" style="vertical-align:middle" | [[Image:Compass barnstar.png|80px]] |rowspan="2" | |style="font-size: x-large; padding: 0; vertical-align: middle; height: 1.1em;" | '''The Guidance Barnstar''' |- |style="vertical-align: middle; border-top: 1px solid gray;" | Thanks for your HELP Adrignola. [[User:බිඟුවා|බිඟුවා]] ([[User talk:බිඟුවා|discuss]] • [[Special:Contributions/බිඟුවා|contribs]]) 04:43, 20 January 2011 (UTC) |} == Bulk moving pages == Hi, I'm really sorry to have to ask this but I haven't been able to find a quick solution. I maintain the [[A-level_Computing]] book and it currently has a focus on a particular exam board, AQA. Other people are keen on starting an OCR (another exam board) page so it would be good to turn [[A-level_Computing]] into a splash page linking to both books. moving all the current A-level_Computing/... pages to A-level_Computing/AQA/... Is there an easy way to do this that maintains maintains the internal links? Thanks [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 13:05, 29 January 2011 (UTC) :Please do not create splash pages. See [[Wikibooks:Manual of Style#Main page]]. I would advise following the lead of [[A-level Mathematics]] in using a deeper structure so that both AQA and OCR content belong to the same book and are linked from the main contents. (As an admin) I can move all the pages currently in the book down one level ''at one time'' into an AQA structure and fix the links if that is desired. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 13:35, 29 January 2011 (UTC) ::Hi Adrignola, That sounds perfect, if you could move all the current pages to /AQA that would be great, then I'll edit the main page in lines with the Mathematics page. Thanks [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 18:09, 29 January 2011 (UTC) :::All done! &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 22:52, 29 January 2011 (UTC) ::::Thanks for this! Much appreciated [[User:Pluke|Pluke]] ([[User talk:Pluke|discuss]] • [[Special:Contributions/Pluke|contribs]]) 11:09, 30 January 2011 (UTC) == External link deletion == I noticed you deleted a bunch of external link pages back in June with the edit summary "external link; no longer needed". I haven't been on wikibooks for a while and didn't notice until now. Was there a discussion around this? -- [[User:Prod|Prod]] ([[User talk:Prod|discuss]] • [[Special:Contributions/Prod|contribs]]) 23:17, 30 January 2011 (UTC) :Yes, there was [[Wikibooks:Reading_room/Archives/2010/June#CAT:Links_to_external_webpages|a discussion]]. &ndash;&nbsp;[[User:Adrignola|Adrignola]]&nbsp;<small>[[User talk:Adrignola|discuss]]</small> 05:04, 31 January 2011 (UTC) ::Thanks! -- [[User:Prod|Prod]] ([[User talk:Prod|discuss]] • [[Special:Contributions/Prod|contribs]]) 23:44, 31 January 2011 (UTC) 38vh9jzz89ggyjyrcqa0frt9fyj0ywo User talk:Chrishy 3 246336 4668385 2011570 2026-09-03T15:15:15Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668385 wikitext text/x-wiki {{Usertalkback|you=watched}} ==The French R== Before you go changing all the R's to upside-down R's, you might read this page: [http://en.wiktionary.org/wiki/Wiktionary_talk:About_French]. Pick one, and then you'll have to do the whole book. Collins dictionary has pretty much abandoned the upside-down R. [[User:Coupe|Coupe]] ([[User talk:Coupe|talk]]) 23:32, 2 January 2011 (UTC) :Yeah, I had seen some conversations. I had assumed, perhaps too boldly?, that [ʀ] was more dialectal while [ʁ] was the general French accent, like English GA versus Southern American, etc. Also, on the [[French/Appendices/Pronunciation|pronunciation]] page it lists only ʁ in the chart. I don't mind changing the whole book, but is it controversial enough to require a consensus first? <code>[[User:Chrishy|'''—''']][[Special:Contributions/Chrishy|<span style="color:#4F00B0;">'''C'''</span>]][[User talk:Chrishy|<span style="color:#8000FF;">'''hrishy'''</span>]]</code> 00:08, 3 January 2011 (UTC) ::I don't think it requires concensus, just wanted to let you know that others may switch it around on you. I think the majority of the book is done as you are doing. I think the dictionary wiki decided on the [ʁ] as the standard as well. I always thought of the [ʀ] as Parisian, as my mother from Lorraine had a real subtle French R, while Parisian singers were quite wet. As only a beginning French student, I couldn't moderate on this particular area, but am aware of pros and cons. [[User:Coupe|Coupe]] ([[User talk:Coupe|talk]]) 07:14, 3 January 2011 (UTC) kh8v7jhmatja8xxuetr2add4pbzejwd User:Chrishy 2 246339 4668275 2011023 2026-09-03T13:16:23Z ShakespeareFan00 46022 4668275 wikitext text/x-wiki <div class="center"><code>'''user''' | [[User talk:Chrishy|<span style="color:#002BB8;">talk</span>]] | [[Special:Contributions/Chrishy|<span style="color:#002BB8;">contribs</span>]] | [[Special:EmailUser/Chrishy|<span style="color:#002BB8;">email</span>]]</code></div> {{babel|en|fr-3|eo-1|es-1|la-1}} My name is '''Chris'''. ''Chrishy'' comes from a mix-up many years ago involving my name and another word, and I guess it just stuck with me. I'm a 17-year-old [[w:homosexuality|gay]] male with heavy interests in math and language. I plan to take as many high-school courses in advanced math as possible. I am currently in an Advanced Math Analysis course and a statistics class through my local Governor's School program. I've also just completed my fourth year of study in [[French]] and I'm in my second year of [[Spanish]] and my first year of [[Latin]]. I ''love'' [[w:Constructed language|conlangs]]. I do have quite a bit of experience with coding, especially with [[HTML]] and [[CSS]]. I've run some websites before, usually on a small scale of about 200 hits a month, for groups like churches who want a "trendy website!" where I'm as close as they get to a real webmaster. I have run [[PHP]] and [[JavaScript]] programs for purely experimental reasons, but never for anything really productive. dd4mha4y8cg2gph8jr24v5wfcnmarmx User:Clebell/Sandbox 2 249606 4668278 4650845 2026-09-03T13:20:05Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668278 wikitext text/x-wiki <noinclude>{{LaTeX/Top}}</noinclude> == Sandbox Document == This is a copy of a section from the LaTeX Wikibook. It is here to be edited in private so as not to interfere with the live Wikibook. This document is not for public consumption. --[[User:Clebell|Clebell]] ([[User talk:Clebell|discuss]] • [[Special:Contributions/Clebell|contribs]]) 15:24, 6 March 2011 (UTC) Mathematical typesetting is one of LaTeX's greatest strengths. == Math Packages == If your document requires only a few simple mathematical formulas, plain LaTeX has most of the tools that you will need. If you are writing a scientific document that contains numerous complicated formulas, [[LaTeX/Packages|packages]] are available that introduce commands that are more powerful and flexible than the ones provided by LaTeX. '''TODO:''' List packages that are used in the examples. == Math Environments == LaTeX uses [[LaTeX/Absolute Beginners#LaTeX_environments|environments]] to typeset mathematical notation. They can be separated into two categories based on how formulas are presented: * ''text'' - text formulas are displayed in-line, that is, within the body of text where it is declared. e.g., I can say that ''a'' + ''a'' = 2''a'' within this sentence. * ''displayed'' - displayed formulas are separate from the main text. As maths require special environments, there are naturally the appropriate environment names you can use in the standard way. Unlike most other environments, however, there are some handy shorthands to declaring your formulas. The following table summarizes them: {| class="wikitable" ! Type ! Environment ! LaTeX shorthand ! TeX shorthand |- | Text | {{LaTeX/LaTeX|code=\begin{math}...\end{math} }} | {{LaTeX/LaTeX|code=\(...\) }} | {{LaTeX/LaTeX|code=$...$}} |- | Displayed | {{LaTeX/LaTeX|code=\begin{displaymath}...\end{displaymath} }} or {{LaTeX/LaTeX|code=\begin{equation*}...\end{equation*} }}<ref name="amsmath"/> | {{LaTeX/LaTeX|code=\[...\]}} | {{LaTeX/LaTeX|code=$$...$$}} |} '''Note:''' Using the {{LaTeX/LaTeX|code=$$...$$}} should be avoided, as it may cause problems, particularly with the AMS-LaTeX macros. Furthermore, should a problem occur, the error messages may not be helpful. Additionally, there is a second possible environment for the ''displayed'' type of formulas: {{LaTeX/Environment|equation}}. The difference between this and {{LaTeX/Environment|displaymath}} is that {{LaTeX/Environment|equation}} also adds sequential equation numbers by the side. If you are typing text normally, you are said to be in ''text mode'', while you are typing within one of those mathematical environments, you are said to be in ''math mode'', that has some differences compared to the ''text mode'': # Most spaces and line breaks do not have any significance, as all spaces are either derived logically from the mathematical expressions, or have to be specified with special commands such as {{LaTeX/LaTeX|code=\quad}} # Empty lines are not allowed. Only one paragraph per formula. # Each letter is considered to be the name of a variable and will be typeset as such. If you want to typeset normal text within a formula (normal upright font and normal spacing) then you have to enter the text using [[#Adding text to equations|dedicated commands.]] === Inserting "Displayed" maths inside blocks of text === In order for some operators, such as {{LaTeX/LaTeX|code=\lim}} or {{LaTeX/LaTeX|code=\sum}} to be displayed correctly inside some math environments (read {{LaTeX/LaTeX|code=$......$}}), it might be convenient to write the {{LaTeX/LaTeX|code=\displaystyle}} class inside the environment. Doing so might cause the line to be taller, but will cause exponents and indices to be displayed correctly for some math operators == Symbols == Mathematics has lots and lots of symbols! If there is one aspect of maths that is difficult in LaTeX it is trying to remember how to produce them. There are of course a set of symbols that can be accessed directly from the keyboard: + - = ! / ( ) [ ] < > | ' : Beyond those listed above, distinct commands must be issued in order to display the desired symbols. And there are ''a lot!'' of Greek letters, set and relations symbols, arrows, binary operators, etc. For example: {{LaTeX/Example|code=\[ \forall x \in X, \quad \exists y \leq \epsilon \] |render=<math> \forall x \in X, \quad \exists y \leq \epsilon \,</math>}} Fortunately, there's a tool that can greatly simplify the search for the command for a specific symbol. Look for Detexify in the [[#External links|external links]] section below. ==Greek letters== Greek letters are commonly used in mathematics, and they are very easy to type in ''math mode''. You just have to type the name of the letter after a backslash: if the first letter is lowercase, you will get a lowercase Greek letter, if the first letter is uppercase (and only the first letter), then you will get an uppercase letter. Note that some uppercase Greek letters look like Latin ones, so they are not provided by LaTeX (e.g. uppercase ''Alpha'' and ''Beta'' are just "A" and "B" respectively). Lowercase epsilon, theta, phi, pi, rho, and sigma are provided in two different versions. The alternate, or ''var''iant, version is created by adding "var" before the name of the letter: {{LaTeX/Example|code=\[ \alpha, \beta, \gamma, \delta, \epsilon, \varepsilon, \zeta, \eta, \theta, \vartheta, \iota, \kappa, \lambda, \mu, \nu, \xi, \pi, \varpi, \rho, \varrho, \sigma, \varsigma, \tau, \upsilon, \phi, \varphi, \chi, \psi, \omega, \Gamma, \Delta, \Theta, \Phi, \Omega \] |render=<math>\alpha, \beta, \gamma, \delta, \epsilon, \varepsilon, \zeta, \eta, \theta, \vartheta, \iota, \kappa, \lambda, \mu, \nu, \xi, \pi, \varpi, \rho, \varrho, \sigma, \varsigma, \tau, \upsilon, \phi, \varphi, \chi, \psi, \omega, \Gamma, \Delta, \Theta, \Phi, \Omega</math>}} == Operators == An operator is a function that is written as a word: e.g. trigonometric functions (sin, cos, tan), logarithms and exponentials (log, exp). LaTeX has many of these defined as commands: {{LaTeX/Example|code=\[ \cos (2\theta) = \cos^2 \theta - \sin^2 \theta \] |render=<math>\cos (2\theta) = \cos^2 \theta - \sin^2 \theta \,</math> }} For certain operators such as [[w:Limit (mathematics)|limits]], the subscript is placed underneath the operator: {{LaTeX/Example|code=\[ \lim_{x \to \infty} \exp(-x) = 0 \] |render=<math>\lim_{x \to \infty} \exp(-x) = 0</math>}} For the [[w:Modular arithmetic|modular operator]] there are two commands: {{LaTeX/LaTeX|code=\bmod}} and {{LaTeX/LaTeX|code=\pmod}}: {{LaTeX/Example|code=\[ a \bmod b \] |render=<math> a \, \bmod \, b \,</math>}} {{LaTeX/Example|code=\[ x \equiv a \pmod b \] |render=<math> x \equiv a \pmod b \,</math>}} To use operators which are not pre-defined, such as [[w:argmax|argmax]], see [[../Advanced Mathematics#Custom operators|custom operators]] == Powers and indices == Powers and indices are equivalent to superscripts and subscripts in normal text mode. The caret (<code>^</code>) character is used to raise something, and the underscore (<code>_</code>) is for lowering. If more than one expression is raised or lowered, they should be grouped using curly braces (<code>{</code> and <code>}</code>). {{LaTeX/Example|code=\[ k_{n+1} = n^2 + k_n^2 - k_{n-1} \] |render=<math> k_{n+1} = n^2 + k_n^2 - k_{n-1} \,</math>}} An underscore (<code>_</code>) can be used with a vertical bar (<math>|</math>) to denote evaluation using subscript notation in mathematics: {{LaTeX/Example|code=\[ f(n) = n^5 + 4n^2 + 2 {{!}}_{n=17} \] |render=<math> f(n) = n^5 + 4n^2 + 2 |_{n=17} \,</math>}} == Fractions and Binomials == A fraction is created using the {{LaTeX/LaTeX|code=\frac{numerator}{denominator}<!---->}} command. (for those who need their memories refreshed, that's the ''top'' and ''bottom'' respectively!). Likewise, the [[w:Binomial coefficient|binomial coefficient]] (aka the Choose function) may be written using the {{LaTeX/LaTeX|code=\binom}} command<ref name="amsmath"/>: {{LaTeX/Example|code= \[ \frac{n!}{k!(n-k)!} = \binom{n}{k} \] |render= <math> \frac{n!}{k!(n-k)!} = \binom{n}{k} </math> }} It is also possible to use the {{LaTeX/LaTeX|code=\choose}} command without the {{LaTeX/Package|amsmath}} package: {{LaTeX/Example|code= \[ \frac{n!}{k!(n-k)!} = {n \choose k} \] |render= <math> \frac{n!}{k!(n-k)!} = {n \choose k} </math> }} You can embed fractions within fractions: {{LaTeX/Example|code= \[ \frac{\frac{1}{x}+\frac{1}{y}<!---->}{y-z} \] |render= <math> \frac{\frac{1}{x}+\frac{1}{y}}{y-z} </math> }} Note that when appearing inside another fraction, or in inline text <math>\tfrac{a}{b}</math>, a fraction is noticeably smaller than in displayed mathematics. The {{LaTeX/LaTeX|code=\tfrac}} and {{LaTeX/LaTeX|code=\dfrac}} commands<ref name="amsmath"/> force the use of the respective styles, {{LaTeX/LaTeX|code=\textstyle}} and {{LaTeX/LaTeX|code=\displaystyle}}. Similarly, the {{LaTeX/LaTeX|code=\tbinom}} and {{LaTeX/LaTeX|code=\dbinom}} commands typeset the binomial coefficient. Another way to write fractions is to use the {{LaTeX/LaTeX|code=\over}} command without the {{LaTeX/Package|amsmath}} package: {{LaTeX/Example|code= \[ {n! \over k!(n-k)!} = {n \choose k} \] | render= <math> {n! \over k!(n-k)!} = {n \choose k} </math> }} For relatively simple fractions, it may be more aesthetically pleasing to use [[#Powers and indices|powers and indices]]: {{LaTeX/Example|code= \[ ^3/_7 \] |render=<math> ^3/_7 \,</math> }} If you use them throughout the document, usage of {{LaTeX/Package|xfrac}} package is recommended. This package provides {{LaTeX/LaTeX|code=\sfrac}} command to create slanted fractions. Usage: {{LaTeX/Example|code= Take \sfrac{1}{2} cup of sugar, \dots \[ 3\times\sfrac{1}{2}=1\sfrac{1}{2} \] Take ${}^1/_2$ cup of sugar, \dots \[ 3\times{}^1/_2=1{}^1/_2 \] |render=[[Image:LaTeX-xfrac-example.png|400px]]}} Alternatively, the {{LaTeX/Package|nicefrac}} package provides the {{LaTeX/LaTeX|code=\nicefrac}} command, whose usage is similar to {{LaTeX/LaTeX|code=\sfrac}}. === Continued fractions === Continued fractions should be written using {{LaTeX/LaTeX|code=\cfrac}} command<ref name=amsmath/>: {{LaTeX/Example|code= \begin{equation} x = a_0 + \cfrac{1}{a_1 + \cfrac{1}{a_2 + \cfrac{1}{a_3 + a_4}<!---->}<!---->} \end{equation} |render= <math> x = a_0 + \cfrac{1}{a_1 + \cfrac{1}{a_2 + \cfrac{1}{a_3 + a_4}}} </math> }} == Roots == The {{LaTeX/LaTeX|code=\sqrt}} command creates a square root surrounding an expression. It accepts an optional argument specified in square brackets (<code>[</code> and <code>]</code>) to change magnitude: {{LaTeX/Example|code= \[ \sqrt{\frac{a}{b}<!---->} \] |render= <math> \sqrt{\frac{a}{b}} </math> }} {{LaTeX/Example|code= \[ \sqrt[n]{1+x+x^2+x^3+\ldots} \] |render=<math> \sqrt[n]{1+x+x^2+x^3+\ldots} </math> }} Some people prefer writing the square root "closing" it over its content. This method arguably makes it more clear just what is in the scope of the root sign. This habit is not normally used while writing with the computer, but if you still want to change the output of the square root, LaTeX gives you this possibility. Just add the following code in the preamble of your document: {{LaTeX/Example|code= % New definition of square root: % it renames \sqrt as \oldsqrt \let\oldsqrt\sqrt % it defines the new \sqrt in terms of the old one \def\sqrt{\mathpalette\DHLhksqrt} \def\DHLhksqrt#1#2{% \setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0 \advance\dimen0-0.2\ht0 \setbox2=\hbox{\vrule height\ht0 depth -\dimen0}% {\box0\lower0.4pt\box2}<!---->} |render=[[Image:Latex_new_squareroot.png|thumb|right|250px|The new style is on left, the old one on right]] }} This TeX code first renames the {{LaTeX/LaTeX|code=\sqrt}} command as {{LaTeX/LaTeX|code=\oldsqrt}}, then redefines {{LaTeX/LaTeX|code=\sqrt}} in terms of the old one, adding something more. The new square root can be seen in the picture on the right, compared to the old one. Unfortunately this code won't work if you want to use multiple roots: if you try to write <math>\sqrt[b]{a}</math> as {{LaTeX/LaTeX|code=\sqrt[b]{a}<!---->}} after you used the code above, you'll just get a wrong output. In other words, you can redefine the square root this way only if you are not going to use multiple roots in the whole document. == Sums and integrals == The {{LaTeX/LaTeX|code=\sum}} and {{LaTeX/LaTeX|code=\int}} commands insert the sum and integral symbols respectively, with limits specified using the caret (<code>^</code>) and underscore (<code>_</code>): {{LaTeX/Example|code= \[ \sum_{i=1}^{10} t_i \] |render=<math> \sum_{i=1}^{10} t_i \,</math> }} {{LaTeX/Example|code= \[ \int_0^\infty e^{-x}\,dx \] |render=<math> \int_0^\infty e^{-x}\,dx \,</math> }} There are many other "big" commands which operate in a similar manner: {| | <code>\sum</code> || <math>\sum \,</math> |style="padding-left:20px"| | <code>\prod</code> || <math>\prod</math> |style="padding-left:20px"| | <code>\coprod</code> || <math>\coprod</math> |- | <code>\bigoplus</code> || <math>\bigoplus</math> |style="padding-left:20px"| | <code>\bigotimes</code> || <math>\bigotimes</math> |style="padding-left:20px"| | <code>\bigodot</code> || <math>\bigodot</math> |- | <code>\bigcup</code> || <math>\bigcup</math> |style="padding-left:20px"| | <code>\bigcap</code> || <math>\bigcap</math> |style="padding-left:20px"| | <code>\biguplus</code> || <math>\biguplus</math> |- | <code>\bigsqcup</code> || <math>\bigsqcup</math> |style="padding-left:20px"| | <code>\bigvee</code> || <math>\bigvee</math> |style="padding-left:20px"| | <code>\bigwedge</code> || <math>\bigwedge</math> |- | <code>\int</code> || <math>\int</math> |style="padding-left:20px"| | <code>\oint</code> || <math>\oint</math> |style="padding-left:20px"| | <code>\iint</code><ref name="amsmath"/> || <math>\iint</math> |- | <code>\iiint</code><ref name="amsmath"/> || <math>\iiint</math> |style="padding-left:20px"| | <code>\iiiint</code><ref name="amsmath"/> || <math>\iiiint</math> |style="padding-left:20px"| | <code>\idotsint</code><ref name="amsmath"/> || <math>\int \! \cdots \! \int</math> |} For more integral symbols, including those not included by default in the Computer Modern font, try the {{LaTeX/Package|esint}} package. The {{LaTeX/LaTeX|code=\substack}} command<ref name="amsmath"/> allows the use of {{LaTeX/LaTeX|code=\\}} to write the limits over multiple lines: {{LaTeX/Example|code= \[ \sum_{\substack{ 0<i<m \\ 0<j<n }<!---->} P(i,j) \] |render=<math> \sum_{\overset{\scriptstyle 0<i<m} {\scriptstyle 0<j<n}} P(i,j) \,</math> }} If you want the limits of an integral to be specified above and below the symbol (like the sum), use the {{LaTeX/LaTeX|code=\limits}} command: {{LaTeX/Example|code= \[ \int\limits_a^b \] |render=<math> \int\limits_a^b \,</math> }} However if you want this to apply to ALL integrals, it is preferable to specify the {{LaTeX/Parameter|intlimits}} option when loading the {{LaTeX/Package|amsmath}} package: {{LaTeX/Usage|code= \usepackage[intlimits]{amsmath} }} Subscripts and superscripts in other contexts as well as other parameters to {{LaTeX/Package|amsmath}} package related to them are described in [[LaTeX/Advanced_Mathematics#Advanced_formatting|Advanced Mathematics]] chapter. For bigger integrals, you may use personal declarations, or the {{LaTeX/Package|bigints}} package <ref name=LM> http://hdl.handle.net/2268/6219</ref>. == Brackets, braces and delimiters == <small>''How to use braces in multi line equations is described in the [[LaTeX/Advanced_Mathematics#Braces_spanning_multiple_lines|Advanced Mathematics]] chapter.''</small> The use of delimiters such as brackets soon becomes important when dealing with anything but the most trivial equations. Without them, formulas can become ambiguous. Also, special types of mathematical structures, such as matrices, typically rely on delimiters to enclose them. There are a variety of delimiters available for use in LaTeX: {{LaTeX/Example|code= \[ () \, [] \, \{\} \, {{!}}{{!}} \, \{{!}}\{{!}} \, \langle\rangle \, \lfloor\rfloor \, \lceil\rceil \] |render=<math> () \, [] \, \{\} \, || \, \|\| \, \langle\rangle \, \lfloor\rfloor \, \lceil\rceil \,</math> }} === Automatic sizing === Very often mathematical features will differ in size, in which case the delimiters surrounding the expression should vary accordingly. This can be done automatically using the {{LaTeX/LaTeX|code=\left}} and {{LaTeX/LaTeX|code=\right}} commands. Any of the previous delimiters may be used in combination with these: {{LaTeX/Example|code= \[ \left(\frac{x^2}{y^3}\right) \] |render=<math> \left(\frac{x^2}{y^3}\right) \,</math> }} If a delimiter on only one side of an expression is required, then an invisible delimiter on the other side may be denoted using a period (<code>.</code>). === Manual sizing === In certain cases, the sizing produced by the {{LaTeX/LaTeX|code=\left}} and {{LaTeX/LaTeX|code=\right}} commands may not be desirable, or you may simply want finer control over the delimiter sizes. In this case, the {{LaTeX/LaTeX|code=\big}}, {{LaTeX/LaTeX|code=\Big}}, {{LaTeX/LaTeX|code=\bigg}} and {{LaTeX/LaTeX|code=\Bigg}} modifier commands may be used: {{LaTeX/Example|code= \[ ( \big( \Big( \bigg( \Bigg( \] |render=<math> ( \big( \Big( \bigg( \Bigg( \,</math> }} == Matrices and arrays == A basic matrix may be created using the {{LaTeX/Environment|matrix}} environment<ref name="amsmath">requires the {{LaTeX/Package|amsmath}} package</ref>: in common with other table-like structures, entries are specified by row, with columns separated using an ampersand ({{LaTeX/LaTeX|code=&}}) and a new rows separated with a double backslash ({{LaTeX/LaTeX|code=\\}}) {{LaTeX/Example|code= \[ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} \] |render=<math> \begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} </math> }} To specify alignment of columns in the table, use starred version<ref name="mathtools">requires the {{LaTeX/Package|mathtools}} package</ref>: {{LaTeX/Example|code= \[ \begin{matrix} -1 & 3 \\ 2 & -4 \end{matrix} = \begin{matrix*}[r] -1 & 3 \\ 2 & -4 \end{matrix*} \] |render= <math> \begin{matrix} -1 & 3 \\ 2 & -4 \end{matrix} = \begin{matrix} -1 & \,\;\;3 \\ \,\;\;2 & -4 \end{matrix} </math> }} The alignment by default is {{LaTeX/Parameter|c}} but it can be any column type valid in {{LaTeX/Environment|array}} environment. However matrices are usually enclosed in delimiters of some kind, and while it is possible to use the [[#Automatic sizing|<code>\left</code> and <code>\right</code> commands]], there are various other predefined environments which automatically include delimiters: {|class="wikitable" ! Environment name ! Surrounding delimiter ! Notes |- | {{LaTeX/Environment|pmatrix}}<ref name="amsmath"/> | <math>( \, ) </math> | centers columns by default |- | {{LaTeX/Environment|pmatrix*}}<ref name="mathtools"/> | <math>( \, ) </math> | allows to specify alignment of columns in optional parameter |- | {{LaTeX/Environment|bmatrix}}<ref name="amsmath"/> | <math>[ \, ] </math> | centers columns by default |- | {{LaTeX/Environment|bmatrix*}}<ref name="mathtools"/> | <math>[ \, ] </math> | allows to specify alignment of columns in optional parameter |- | {{LaTeX/Environment|Bmatrix}}<ref name="amsmath"/> | <math>\{ \, \} </math> | centers columns by default |- | {{LaTeX/Environment|Bmatrix*}}<ref name="mathtools"/> | <math>\{ \, \} </math> | allows to specify alignment of columns in optional parameter |- | {{LaTeX/Environment|vmatrix}}<ref name="amsmath"/> | <math>| \, | </math> | centers columns by default |- | {{LaTeX/Environment|vmatrix*}}<ref name="mathtools"/> | <math>| \, | </math> | allows to specify alignment of columns in optional parameter |- | {{LaTeX/Environment|Vmatrix}}<ref name="amsmath"/> | <math>\| \, \| </math> | centers columns by default |- | {{LaTeX/Environment|Vmatrix*}}<ref name="mathtools"/> | <math>\| \, \| </math> | allows to specify alignment of colums in optional parameter |} When writing down arbitrary sized matrices, it is common to use horizontal, vertical and diagonal triplets of dots (known as [[w:ellipsis|ellipses]]) to fill in certain columns and rows. These can be specified using the {{LaTeX/LaTeX|code=\cdots}}, {{LaTeX/LaTeX|code=\vdots}} and {{LaTeX/LaTeX|code=\ddots}} respectively: {{LaTeX/Example|code= \[ A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix} \] |render=<math> A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix} </math> }} In some cases you may want to have finer control of the alignment within each column, or want to insert lines between columns or rows. This can be achieved using the {{LaTeX/Environment|array}} environment, which is essentially a math-mode version of the [[../Tables#The tabular environment|<code>tabular</code> environment]], which requires that the columns be pre-specified: {{LaTeX/Example|code= \[ \begin{array}{c{{!}}c} 1 & 2 \\ \hline 3 & 4 \end{array} \] |render=<math> \begin{array}{c|c} 1 & 2 \\ \hline 3 & 4 \end{array} </math> }} You may see that the AMS matrix class of environments doesn't leave enough space when used together with fractions resulting in output similar to this: <math> M = \begin{bmatrix} \frac{5}{6} & \frac{1}{6} & 0\\ \frac{5}{6} & 0 & \frac{1}{6}\\ 0 & \frac{5}{6} & \frac{1}{6} \end{bmatrix} </math> To counteract this problem, add additional leading space with the optional parameter to the {{LaTeX/LaTeX|code=\\}} command: {{LaTeX/Example|code= \[ M = \begin{bmatrix} \frac{5}{6} & \frac{1}{6} & 0 \\[0.3em] \frac{5}{6} & 0 & \frac{1}{6} \\[0.3em] 0 & \frac{5}{6} & \frac{1}{6} \end{bmatrix} \] |render=<math> M = \begin{bmatrix} \frac{5}{6} & \frac{1}{6} & 0 \\[0.3em] \frac{5}{6} & 0 & \frac{1}{6} \\[0.3em] 0 & \frac{5}{6} & \frac{1}{6} \end{bmatrix}</math> }} If you need "border" or "indexes" on your matrix, plain TeX provides the macro {{LaTeX/LaTeX|code=\bordermatrix}} {{LaTeX/Example|code= \[ M = \bordermatrix{~ & x & y \cr A & 1 & 0 \cr B & 0 & 1 \cr} \] |render=[[Image:bordermatrix.png|150px]] }} === Matrices in running text === To insert a small matrix, and not increase leading in the line containing it, use {{LaTeX/Environment|smallmatrix}} environment: {{LaTeX/Example|code= A matrix in text must be set smaller $\bigl(\begin{smallmatrix} a&b\\ c&d \end{smallmatrix} \bigr)$ to not increase leading in a portion of text. |render=[[Image:LaTeX-smallmatrix.png|370px]] }} == Adding text to equations == The math environment differs from the text environment in the representation of text. Here is an example of trying to represent text within the math environment: {{LaTeX/Example|code= \[ 50 apples \times 100 apples = lots of apples^2 \] |render=<math> 50 apples \times 100 apples = lots of apples^2 \,</math> }} There are two noticeable problems: there are no spaces between words or numbers, and the letters are italicized and more spaced out than normal. Both issues are simply artifacts of the maths mode, in that it treats it as a mathematical expression: spaces are ignored (LaTeX spaces mathematics according to its own rules), and each character is a separate element (so are not positioned as closely as normal text). There are a number of ways that text can be added properly. The typical way is to wrap the text with the {{LaTeX/LaTeX|code=\text{...}<!---->}} command <ref name="amsmath"/> (a similar command is {{LaTeX/LaTeX|code=\mbox{...}<!---->}}, though this causes problems with subscripts, and has a less descriptive name). Let's see what happens when the above equation code is adapted: {{LaTeX/Example|code= \[ 50 \text{apples} \times 100 \text{apples} = \text{lots of apples}^2 \] |render= <math> 50 \text{apples} \times 100 \text{apples} = \text{lots of apples}^2 \,</math> }} The text looks better. However, there are no gaps between the numbers and the words. Unfortunately, you are required to explicitly add these. There are many ways to add spaces between maths elements, but for the sake of simplicity you may literally add the space character in the affected {{LaTeX/LaTeX|code=\text}}(s) itself (just before the text.) {{LaTeX/Example|code= \[ 50 \text{ apples} \times 100 \text{ apples} = \text{lots of apples}^2 \] |render= <math> 50 \text{ apples} \times 100 \text{ apples} = \text{lots of apples}^2 \,</math> }} === Formatted text === Using the {{LaTeX/LaTeX|code=\text}} is fine and gets the basic result. Yet, there is an alternative that offers a little more flexibility. You may recall the introduction of [[LaTeX/Formatting#Font Styles and size|font formatting commands]], such as {{LaTeX/LaTeX|code=\textrm}}, {{LaTeX/LaTeX|code=\textit}}, {{LaTeX/LaTeX|code=\textbf}}, etc. These commands format the argument accordingly, e.g., {{LaTeX/LaTeX|code=\textbf{bold text}<!---->}} gives '''bold text'''. These commands are equally valid within a maths environment to include text. The added benefit here is that you can have better control over the font formatting, rather than the standard text achieved with {{LaTeX/LaTeX|code=\text}}. {{LaTeX/Example|code= \[ 50 \textrm{ apples} \times 100 \textbf{ apples} = \textit{lots of apples}^2 \] |render=<math> 50 \;\textrm{ apples} \times 100 \;\textbf{ apples} = \textit{lots}\;of\;apples^2 \,</math> }} == Formatting mathematics symbols == So we can format text, what about formatting mathematics? There are a set of formatting commands very similar to the font formatting ones just used, except they are aimed specifically for text in maths mode (requires {{LaTeX/Package|amsfonts}}) {|class="wikitable" ! LaTeX command ! Sample ! Description ! Common use |- | {{LaTeX/LaTeX|code=\mathnormal{…}<!---->}} | <math>ABCDEF abcdef 123456\,</math> | the default math font | most mathematical notation |- | {{LaTeX/LaTeX|code=\mathrm{…}<!---->}} | <math>\mathrm{ABCDEF abcdef 123456}\,</math> | this is the default or normal font, unitalicised | units of measurement, one word functions |- | {{LaTeX/LaTeX|code=\mathit{…}<!---->}} | <math>\mathit{ABCDEF abcdef 123456}\,</math> | italicised font | |- | {{LaTeX/LaTeX|code=\mathbf{…}<!---->}} | <math>\mathbf{ABCDEF abcdef 123456}\,</math> | bold font | vectors |- | {{LaTeX/LaTeX|code=\mathsf{…}<!---->}} | <math>\mathsf{ABCDEF abcdef 123456}\,</math> | [[w:sans-serif|Sans-serif]] | |- | {{LaTeX/LaTeX|code=\mathtt{…}<!---->}} | <span style="font-family: monospace;">ABCDEFabcdef123456</span> | [[w:Monospace font|Monospace (fixed-width) font]] | |- | {{LaTeX/LaTeX|code=\mathcal{…}<!---->}} | <math>\mathcal{ABCDEF abcdef 123456}\,</math> | Calligraphy (uppercase only) | often used for sheaves/schemes and categories |- | {{LaTeX/LaTeX|code=\mathfrak{…}<!---->}}<ref name="amsfonts">requires <code>amsfonts</code> or <code>amssymb</code> packages</ref> | <math>\mathfrak{ABCDEF abcdef 123456}\,</math> | [[w:Fraktur (script)|Fraktur]] | Almost canonical font for Lie algebras |- | {{LaTeX/LaTeX|code=\mathbb{…}<!---->}}<ref name="amsfonts"/> | <math>\mathbb{ABCDEF abcdef 123456}\,</math> | [[w:Blackboard bold|Blackboard bold]] | Used to denote special sets (e.g. real numbers) |- | {{LaTeX/LaTeX|code=\mathscr{…}<!---->}}<ref>require <code>mathrsfs</code> package</ref> | | [[w:Script (typefaces)|Script]] | |} The maths formatting commands can be wrapped around the entire equation, and not just on the textual elements: they only format letters, numbers, and uppercase Greek, and the rest of the maths syntax is ignored. To bold lowercase Greek or other symbols use the {{LaTeX/LaTeX|code=\boldsymbol}} command<ref name="amsmath"/>; this will only work if there exists a bold version of the symbol in the current font. As a last resort there is the {{LaTeX/LaTeX|code=\pmb}} command<ref name="amsmath"/> (poor mans bold): this prints multiple versions of the character slightly offset against each other {{LaTeX/Example|code= \[ \boldsymbol{\beta} = (\beta_1,\beta_2,\ldots,\beta_n) \] |render= <math> \boldsymbol{\beta} = (\beta_1,\beta_2,\ldots,\beta_n) \,</math> }} To change the size of the fonts in math mode, see [[../Advanced Mathematics#Changing font size|Changing font size]]. === Accents === So what to do when you run out of symbols and fonts? Well the next step is to use accents: {| | <code>a'</code> || <math>a'\,</math> | style="padding-left:20px" | | <code><nowiki>a''</nowiki></code> || <math>a''\,</math> | style="padding-left:20px" | | <code><nowiki>a'''</nowiki></code> || <math>a'''\,</math> | style="padding-left:20px" | | <code><nowiki>a''''</nowiki></code> || <math>a''''\,</math> |- | <code>\hat{a}</code> || <math>\hat{a} \,</math> | style="padding-left:20px" | | <code>\bar{a}</code> || <math>\bar{a} \,</math> | style="padding-left:20px" | | <code>\overline{aaa}</code> || <math>\overline{aaa} \,</math> | style="padding-left:20px" | | <code>\check{a}</code> || <math>\check{a} \,</math> | style="padding-left:20px" | | <code>\tilde{a}</code> || <math>\tilde{a} \,</math> |- | <code>\grave{a}</code> || <math>\grave{a} \,</math> | style="padding-left:20px" | | <code>\acute{a}</code> || <math>\acute{a} \,</math> | style="padding-left:20px" | | <code>\breve{a}</code> || <math>\breve{a} \,</math> | style="padding-left:20px" | | <code>\vec{a}</code> || <math>\vec{a} \,</math> |- | <code>\dot{a}</code> || <math>\dot{a} \,</math> | style="padding-left:20px" | | <code>\ddot{a}</code> || <math>\ddot{a} \,</math> | style="padding-left:20px" | | <code>\dddot{a}</code><ref name="amsmath"/> || | style="padding-left:20px" | | <code>\ddddot{a}</code><ref name="amsmath"/> || |- | <code>\not{a}</code> || <math>\not{a} \,</math> | style="padding-left:20px" | | <code>\mathring{a}</code> || | style="padding-left:20px" | | <code>\widehat{AAA}</code> || <math>\widehat{AAA} \,</math> | style="padding-left:20px" | | <code>\widetilde{AAA}</code> || |} ==Plus and minus signs== Latex deals with the + and - signs in two possible ways. The most common is as a binary operator. When two maths elements appear either side of the sign, it is assumed to be a binary operator, and as such, allocates some space either side of the sign. The alternative way is a sign designation. This is when you state whether a mathematical quantity is either positive or negative. This is common for the latter, as in maths, such elements are assumed to be positive unless a - is prefixed to it. In this instance, you want the sign to appear close to the appropriate element to show their association. If you put a + or a - with nothing before it but you want it to be handled like a binary operator you can add an ''invisible'' character before the operator using {{LaTeX/LaTeX|code={}<!---->}}. This can be useful if you are writing multiple-line formulas, and a new line could start with a = or a +, for example, then you can fix some strange alignments adding the invisible character where necessary. == Controlling horizontal spacing == LaTeX is obviously pretty good at typesetting maths—it was one of the chief aims of the core Tex system that LaTeX extends. However, it can't always be relied upon to accurately interpret formulas in the way you did. It has to make certain assumptions when there are ambiguous expressions. The result tends to be slightly incorrect horizontal spacing. In these events, the output is still satisfactory, yet, any perfectionists will no doubt wish to ''fine-tune'' their formulas to ensure spacing is correct. These are generally very subtle adjustments. There are other occasions where LaTeX has done its job correctly, but you just want to add some space, maybe to add a comment of some kind. For example, in the following equation, it is preferable to ensure there is a decent amount of space between the maths and the text. {{LaTeX/Example|code= \[ f(n) = \left\{ \begin{array}{l l} n/2 & \quad \text{if $n$ is even}\\ -(n+1)/2 & \quad \text{if $n$ is odd}\\ \end{array} \right. \] |render= <math> f(n) = \begin{cases} n/2 & \quad \text{if } n \text{ is even} \\ -(n+1)/2 & \quad \text{if } n \text{ is odd}\\ \end{cases} </math> }} This code produces errors with Miktex 2.9 and does not yield the results seen on the right. Use \textrm instead of just \text. (Note that this particular example can be expressed in more elegant code by the {{LaTeX/Environment|cases}} construct provided by the {{LaTeX/Package|amsmath}} package described in [[LaTeX/Advanced_Mathematics#The_cases_environment|Advanced Mathematics]] chapter.) LaTeX has defined two commands that can be used anywhere in documents (not just maths) to insert some horizontal space. They are {{LaTeX/LaTeX|code=\quad}} and {{LaTeX/LaTeX|code=\qquad}} A {{LaTeX/LaTeX|code=\quad}} is a space equal to the current font size. So, if you are using an 11pt font, then the space provided by {{LaTeX/LaTeX|code=\quad}} will also be 11pt (horizontally, of course.) The {{LaTeX/LaTeX|code=\qquad}} gives twice that amount. As you can see from the code from the above example, {{LaTeX/LaTeX|code=\quad}}s were used to add some separation between the maths and the text. OK, so back to the fine tuning as mentioned at the beginning of the document. A good example would be displaying the simple equation for the indefinite integral of ''y'' with respect to ''x'': <math>\int y\, \mathrm{d}x</math> If you were to try this, you may write: {{LaTeX/Example|code= \[ \int y \mathrm{d}x \] |render= <math>\int y \mathrm{d}x</math> }} However, this doesn't give the correct result. LaTeX doesn't respect the white-space left in the code to signify that the ''y'' and the d''x'' are independent entities. Instead, it lumps them altogether. A {{LaTeX/LaTeX|code=\quad}} would clearly be overkill is this situation—what is needed are some small spaces to be utilized in this type of instance, and that's what LaTeX provides: {| class="wikitable" ! Command ! Description ! Size |- | {{LaTeX/LaTeX|code=\,}} | small space | 3/18 of a quad |- | {{LaTeX/LaTeX|code=\:}} | medium space | 4/18 of a quad |- | {{LaTeX/LaTeX|code=\;}} | large space | 5/18 of a quad |- | {{LaTeX/LaTeX|code=\!}} | negative space | -3/18 of a quad |} NB you can use more than one command in a sequence to achieve a greater space if necessary. So, to rectify the current problem: {{LaTeX/Example|code= \[ \int y\, \mathrm{d}x \] |render= <math>\int y\, \mathrm{d}x</math> }} {{LaTeX/Example|code= \[ \int y\: \mathrm{d}x \] |render= <math>\int y\;\;\!\! \mathrm{d}x</math> }} {{LaTeX/Example|code= \[ \int y\; \mathrm{d}x \] |render= <math>\int y\; \mathrm{d}x</math> }} The negative space may seem like an odd thing to use, however, it wouldn't be there if it didn't have ''some'' use! Take the following example: {{LaTeX/Example|code= \[ \left( \begin{array}{c} n \\ r \end{array} \right) = \frac{n!}{r!(n-r)!} \] |render= <math>\left( \begin{matrix} n \\ r \end{matrix} \right) = \frac{n!}{r!(n-r)!}</math> }} The matrix-like expression for representing binomial coefficients is too padded. There is too much space between the brackets and the actual contents within. This can easily be corrected by adding a few negative spaces after the left bracket and before the right bracket. {{LaTeX/Example|code= \[ \left(\! \begin{array}{c} n \\ r \end{array} \!\right) = \frac{n!}{r!(n-r)!} \] |render= <math>\left(\! \begin{matrix} n \\ r \end{matrix} \!\right) = \frac{n!}{r!(n-r)!} </math> }} In any case, adding some spaces manually should be avoided whenever possible: it makes the source code more complex and it's against the basic principles of a What You See is What You Mean approach. The best thing to do is to define some commands using all the spaces you want and then, when you use your command, you don't have to add any other space. Later, if you change your mind about the length of the horizontal space, you can easily change it modifying only the command you defined before. Let us use an example: you want the ''d'' of a ''dx'' in an integral to be in roman font and a small space away from the rest. If you want to type an integral like {{LaTeX/LaTeX|code=\int x \; \mathrm{d} x}}, you can define a command like this: {{LaTeX/Usage|code= \newcommand{\dd}{\; \mathrm{d}<!---->} }} in the preamble of your document. We have chosen {{LaTeX/LaTeX|code=\dd}} just because it reminds the "d" it replaces and it is fast to type. Doing so, the code for your integral becomes {{LaTeX/LaTeX|code=\int x \dd x}}. Now, whenever you write an integral, you just have to use the {{LaTeX/LaTeX|code=\dd}} instead of the "d", and all your integrals will have the same style. If you change your mind, you just have to change the definition in the preamble, and all your integrals will be changed accordingly. ==Advanced Mathematics: AMS Math package== The AMS ([[Wikipedia:American Mathematical Society|American Mathematical Society]]) mathematics package is a powerful package that creates a higher layer of abstraction over mathematical LaTeX language; if you use it it will make your life easier. Some commands {{LaTeX/Package|amsmath}} introduces will make other plain LaTeX commands obsolete: in order to keep consistency in the final output you'd better use {{LaTeX/Package|amsmath}} commands whenever possible. If you do so, you will get an elegant output without worrying about alignment and other details, keeping your source code readable. If you want to use it, you have to add this in the preamble: {{LaTeX/Usage|code= \usepackage{amsmath} }} ===Introducing text and dots in formulas=== {{LaTeX/Package|amsmath}} defines also the {{LaTeX/LaTeX|code=\dots}} command, that is a generalization of the existing {{LaTeX/LaTeX|code=\ldots}}. You can use {{LaTeX/LaTeX|code=\dots}} in both text and math mode and LaTeX will replace it with three dots "…" but it will decide according to the context whether to put it on the bottom (like {{LaTeX/LaTeX|code=\ldots}}) or centered (like {{LaTeX/LaTeX|code=\cdots}}). ===Dots=== LaTeX gives you several commands to insert dots in your formulas. This can be particularly useful if you have to type big matrices omitting elements. First of all, here are the main dots-related commands LaTeX provides: {| class="wikitable" ! Code !! Output !! Comment |- | {{LaTeX/LaTeX|code=\dots}} || <math>\dots</math> || generic dots, to be used in text (outside formulas as well). It automatically manages whitespaces before and after itself according to the context, it's a higher level command. |- | {{LaTeX/LaTeX|code=\ldots}}|| <math>\ldots</math> || the output is similar to the previous one, but there is no automatic whitespace management; it works at a lower level. |- | {{LaTeX/LaTeX|code=\cdots}} || <math>\cdots</math> || These dots are centered relative to the height of a letter. There is also the binary multiplication operator, <code>\cdot</code>, mentioned below. |- | {{LaTeX/LaTeX|code=\vdots}} || <math>\vdots</math> || vertical dots |- | {{LaTeX/LaTeX|code=\ddots}} || <math>\ddots</math> || diagonal dots |- | {{LaTeX/LaTeX|code=\iddots}} || || inverse diagonal dots (requires the mathdots package) |- | {{LaTeX/LaTeX|code=\hdotsfor{n}<!---->}} || <math>\ldots \ldots</math>|| to be used in matrices, it creates a row of dots spanning ''n'' columns. |} Instead of using {{LaTeX/LaTeX|code=\ldots}} and {{LaTeX/LaTeX|code=\cdots}}, you should use the semantically oriented commands. It make it possible to adapt your document to different conventions on the fly, in case (for example) you have to submit it to a publisher who insists on following house tradition in this respect. The default treatment for the various kinds follows American Mathematical Society conventions. {| class="wikitable" ! Code !! Output !! Comment |- | {{LaTeX/LaTeX|code=A_1,A_2,\dotsc,}} || [[File:LaTeX Dotsc.png]] || for "dots with commas" |- | {{LaTeX/LaTeX|code=A_1+\dotsb+A_N}} || [[File:LaTeX Dotsb.png]] || for "dots with binary operators/relations" |- | {{LaTeX/LaTeX|code=A_1 \dotsm A_N}} || [[File:LaTeX Dotsm.png]] || for "multiplication dots" |- | {{LaTeX/LaTeX|code=\int_a^b \dotsi}} || [[File:LaTeX Dotsi.png]] || for "dots with integrals" |- | {{LaTeX/LaTeX|code=A_1\dotso A_N}} || [[File:LaTeX Dotso.png]] || for "other dots" (none of the above) |} ==List of Mathematical Symbols== All the pre-defined mathematical symbols from the \TeX\ package are listed below. More symbols are available from extra packages. {| class="wikitable" style="vertical-align:top" |+Relation Symbols ! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script |- | <math>\leq</math>||<code>\leq</code>|| <math>\geq</math>||<code>\geq</code>|| <math>\equiv\,</math>||<code>\equiv</code>|| <math>\models</math>||<code>\models</code>|| <math>\prec</math>||<code>\prec</code> |- | <math>\succ</math>||<code>\succ</code>|| <math>\sim</math>||<code>\sim</code>|| <math>\perp</math>||<code>\perp</code>|| <math>\preceq</math>||<code>\preceq</code>|| <math>\succeq</math>||<code>\succeq</code> |- | <math>\simeq</math>||<code>\simeq</code>|| <math>\mid</math>||<code>\mid</code>|| <math>\ll</math>||<code>\ll</code>|| <math>\gg</math>||<code>\gg</code>|| <math>\asymp</math>||<code>\asymp</code> |- | <math>\parallel</math>||<code>\parallel</code>|| <math>\subset</math>||<code>\subset</code>|| <math>\supset</math>||<code>\supset</code>|| <math>\approx</math>||<code>\approx</code>|| <math>\bowtie</math>||<code>\bowtie</code> |- | <math>\subseteq</math>||<code>\subseteq</code>|| <math>\supseteq</math>||<code>\supseteq</code>|| <math>\cong</math>||<code>\cong</code>|| <math>\sqsubset</math>||<code>\sqsubset</code>|| <math>\sqsupset</math>||<code>\sqsupset</code> |- | <math>\neq\,</math>||<code>\neq</code>|| <math>\smile</math>||<code>\smile</code>|| <math>\sqsubseteq</math>||<code>\sqsubseteq</code>|| <math>\sqsupseteq</math>||<code>\sqsupseteq</code>|| <math>\doteq</math>||<code>\doteq</code> |- | <math>\frown</math>||<code>\frown</code>|| <math>\in</math>||<code>\in</code>|| <math>\ni</math>||<code>\ni</code>|| <math>\propto</math>||<code>\propto</code>|| <math>=\,</math>||<code>=</code> |- | <math>\vdash</math>||<code>\vdash</code>|| <math>\dashv</math>||<code>\dashv</code>|| <math><\,</math>||<code><</code>|| <math>>\,</math>||<code>></code> |} {| class="wikitable" align="left" |+Greek Letters ! Symbol !! Script |- | <math>\Alpha\,</math> and <math>\alpha\,</math>|| <code>\Alpha</code> and <code>\alpha</code> |- | <math>\Beta\,</math> and <math>\beta\,</math>|| <code>\Beta</code> and <code>\beta</code> |- | <math>\Gamma\,</math> and <math>\gamma\,</math>|| <code>\Gamma</code> and <code>\gamma</code> |- | <math>\Delta\,</math> and <math>\delta\,</math>|| <code>\Delta</code> and <code>\delta</code> |- | <math>\Epsilon\,</math>, <math>\epsilon\,</math> and <math>\varepsilon</math>|| <code>\Epsilon</code>, <code>\epsilon</code> and <code>\varepsilon</code> |- | <math>\Zeta\,</math> and <math>\zeta\,</math>|| <code>\Zeta</code> and <code>\zeta</code> |- | <math>\Eta\,</math> and <math>\eta\,</math>|| <code>\Eta</code> and <code>\eta</code> |- | <math>\Theta\,</math>, <math>\theta\,</math> and <math>\vartheta</math>|| <code>\Theta</code>, <code>\theta</code> and <code>\vartheta</code> |- | <math>\Iota\,</math> and <math>\iota\,</math>|| <code>\Iota</code> and <code>\iota</code> |- | <math>\Kappa\,</math> and <math>\kappa\,</math>|| <code>\Kappa</code> and <code>\kappa</code> |- | <math>\Lambda\,</math> and <math>\lambda\,</math>|| <code>\Lambda</code> and <code>\lambda</code> |- | <math>\Mu\,</math> and <math>\mu\,</math>|| <code>\Mu</code> and <code>\mu</code> |- | <math>\Nu\,</math> and <math>\nu\,</math>|| <code>\Nu</code> and <code>\nu</code> |- | <math>\Xi\,</math> and <math>\xi\,</math>|| <code>\Xi</code> and <code>\xi</code> |- | <math>\Pi\,</math>, <math>\pi\,</math> and <math>\varpi</math>|| <code>\Pi</code>, <code>\pi</code> and <code>\varpi</code> |- | <math>\Rho\,</math>, <math>\rho\,</math> and <math>\varrho</math>|| <code>\Rho</code>, <code>\rho</code> and <code>\varrho</code> |- | <math>\Sigma\,</math>, <math>\sigma\,</math> and <math>\varsigma</math>|| <code>\Sigma</code>, <code>\sigma</code> and <code>\varsigma</code> |- | <math>\Tau\,</math> and <math>\tau\,</math>|| <code>\Tau</code> and <code>\tau</code> |- | <math>\Upsilon\,</math> and <math>\upsilon\,</math>|| <code>\Upsilon</code> and <code>\upsilon</code> |- | <math>\Phi\,</math>, <math>\phi\,</math>, and <math>\varphi</math>|| <code>\Phi</code>, <code>\phi</code> and <code>\varphi</code> |- | <math>\Chi\,</math> and <math>\chi\,</math>|| <code>\Chi</code> and <code>\chi</code> |- | <math>\Psi\,</math> and <math>\psi\,</math>|| <code>\Psi</code> and <code>\psi</code> |- | <math>\Omega\,</math> and <math>\omega\,</math>|| <code>\Omega</code> and <code>\omega</code> |} {| class="wikitable" align="center" |+Binary Operations ! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script |- | <math>\pm\,</math> || <code>\pm</code> || <math>\cap\,</math> || <code>\cap</code> || <math>\diamond</math> || <code>\diamond</code> || <math>\oplus</math> || <code>\oplus</code> |- | <math>\mp</math> || <code>\mp</code> || <math>\cup</math> || <code>\cup</code> || <math>\bigtriangleup</math> || <code>\bigtriangleup</code> || <math>\ominus</math> || <code>\ominus</code> |- | <math>\times\,</math> || <code>\times</code> || <math>\uplus</math> || <code>\uplus</code> || <math>\bigtriangledown</math> || <code>\bigtriangledown</code> || <math>\otimes</math> || <code>\otimes</code> |- | <math>\div</math> || <code>\div</code> || <math>\sqcap</math> || <code>\sqcap</code> || <math>\triangleleft</math> || <code>\triangleleft</code> || <math>\oslash</math> || <code>\oslash</code> |- | <math>\ast</math> || <code>\ast</code> || <math>\sqcup</math> || <code>\sqcup</code> || <math>\triangleright</math> || <code>\triangleright</code> || <math>\odot</math> || <code>\odot</code> |- | <math>\star</math> || <code>\star</code> || <math>\vee</math> || <code>\vee</code> || <math>\bigcirc</math> || <code>\bigcirc</code> || <math>\circ</math> || <code>\circ</code> |- | <math>\wedge</math> || <code>\wedge</code> || <math>\dagger\,</math> || <code>\dagger</code> || <math>\bullet</math> || <code>\bullet</code> || <math>\setminus\,</math> || <code>\setminus</code> |- | <math>\ddagger\,</math> || <code>\ddagger</code> || <math>\cdot</math> || <code>\cdot</code> || <math>\wr</math> || <code>\wr</code> || <math>\amalg</math> || <code>\amalg</code> |} {| class="wikitable" |+Set and/or Logic Notation ! Symbol !! Script |- | <math>\exists\,</math> || <code>\exists</code> |- | <math>\forall\,</math> || <code>\forall</code> |- | <math>\neg\,</math> || <code>\neg</code> |- | <math>\in\,</math> and <math>\notin\,</math> || <code>\in</code> and <code>\notin</code> |- | <math>\ni\,</math> || <code>\ni</code> |- | <math>\land\,</math> || <code>\land</code> |- | <math>\lor\,</math> || <code>\lor</code> |- | <math>\rightarrow\,</math> || <code>\rightarrow</code> |- | <math>\implies\,</math> || <code>\implies</code> |- | <math>\iff\,</math> || <code>\iff</code> |- | <math>\top\,</math> || <code>\top</code> |- | <math>\bot\,</math> || <code>\bot</code> |- | <math>\emptyset\,</math> and <math>\varnothing\,</math> || <code>\emptyset</code> and <code>\varnothing</code> |} {| class="wikitable" align="left" |+Delimiters ! Symbol !! Script |- | <math>\uparrow\,</math> || <code>\uparrow</code> |- | <math>\Uparrow\,</math> || <code>\Uparrow</code> |- | <math>\downarrow\,</math> || <code>\downarrow</code> |- | <math>\Downarrow\,</math> || <code>\Downarrow</code> |- | <math>\{\,</math> || <code>\{</code> |- | <math>\}\,</math> || <code>\}</code> |- | <math>\lceil\,</math> || <code>\lceil</code> |- | <math>\rceil\,</math> || <code>\rceil</code> |- | <math>\langle\,</math> || <code>\langle</code> |- | <math>\rangle\,</math> || <code>\rangle</code> |- | <math>/\,</math> || <code>/</code> |- | <math>\backslash\,</math> || <code>\backslash</code> |- | <math>|\,</math> || <code><nowiki>|</nowiki></code> |- | <math>\|\,</math> || <code>\<nowiki>|</nowiki></code> |} {| class="wikitable" align="center" valign="top" |+Other symbols ! Symbol !! Script |- | <math>\partial</math>||<code>\partial</code> |- | <math>\infty</math>||<code>\infty</code> |- | <math>\nabla</math>||<code>\nabla</code> |- | <math>\hbar</math>||<code>\hbar</code> |- | <math>\Box</math>||<code>\Box</code> |- | <math>\aleph</math>||<code>\aleph</code> |- | <math>\ell</math>||<code>\ell</code> |- | <math>\imath</math>||<code>\imath</code> |- | <math>\jmath</math>||<code>\jmath</code> |- | <math>\Re</math>||<code>\Re</code> |- | <math>\Im</math>||<code>\Im</code> |} {| class="wikitable" align="left" |+Trigonometric Functions ! Symbol !! Script !! Symbol !! Script !! Symbol !! Script !! Symbol !! Script |- | <math>\sin</math>||<code>\sin</code>|| <math>\cos</math>||<code>\cos</code>|| <math>\tan</math>||<code>\tan</code>|| <math>\cot</math>||<code>\cot</code> |- | <math>\arcsin</math>||<code>\arcsin</code>|| <math>\arccos</math>||<code>\arccos</code>|| <math>\arctan</math>||<code>\arctan</code>|| <math>\arccot</math>||<code>\arccot</code> |- | <math>\sinh</math>||<code>\sinh</code>|| <math>\cosh</math>||<code>\conh</code>|| <math>\tanh</math>||<code>\tanh</code>|| <math>\coth</math>||<code>\coth</code> |- | <math>\sec</math>||<code>\sec</code>|| <math>\csc</math>||<code>\csc</code>|| || || || |} <!-- Sections remaining: Table 3 onwards from symbols.pdf --> {{clear}} === Summary === As you begin to see, typesetting math can be tricky at times. However, because Latex provides so much control, you can get professional quality mathematics typesetting with relatively little effort (once you've had a bit of practice, of course!). It would be possible to keep going and going with math topics because it seems potentially limitless. However, with this tutorial, you should be able to get along sufficiently. {{TODO| * introduce symbols from [http://www.andy-roberts.net/misc/latex/tutorial9/symbols.pdf] * add symbols from [http://www.ctan.org/tex-archive/macros/latex/contrib/wasysym/wasysym.pdf] * consider adding symbols from [http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf] -- the list of nearly all symbols available for LaTeX * Consider, instead of using the symbols from the above mentioned, using what has already been introduced in [http://en.wikipedia.org/wiki/Math_markup] instead of retyping the tables * How to box an equation within an align environment * Color in equations }} == Notes == <references/> ==Further reading== * [[meta:Help:Displaying a formula]]: Wikimedia uses a subset of LaTeX commands. ==External links== * [http://www.artofproblemsolving.com/Wiki/index.php/LaTeX:Symbols LaTeX maths symbols] * [http://detexify.kirelabs.org detexify]: applet for looking up LaTeX symbols by handwriting them * [ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf <code>amsmath</code> documentation] * [http://www.thestudentroom.co.uk/wiki/LaTeX LaTeX - The Student Room] * [http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf The Comprehensive LaTeX Symbol List] <noinclude> {{LaTeX/Bottom|Page Layout|Advanced Mathematics}} </noinclude> 78786tvpu0zqpb2t4guljw8siz3q59t User:Ebe123/CSDempty 2 253561 4668288 4663599 2026-09-03T13:25:50Z ShakespeareFan00 46022 [[WB:REVERT|Reverted]] edit by [[Special:Contributions/ShakespeareFan00|ShakespeareFan00]] ([[User talk:ShakespeareFan00|talk]]) to last version by Ebe123 2125687 wikitext text/x-wiki {{mbox|type=speedy|text='''This page may {{#if:|soon}} fit the criteria for [[WB:DP#Speedy_deletions|speedy deletion]]{{#if:A empty category so it is an "Abandoned pages displaying intent, but no actual content.".|&nbsp; because:''' <div style="margin-left:2em; background:#FFFFFF; text-align:center;">A empty category so it is applicable for "Abandoned pages displaying intent, but no actual content.".</div> |.'''}} Please '''[[{{TALKPAGENAME}}|share your thoughts]]'''. Do you think this page should be kept or doesn't fit the criteria? You can remove {{tlux|Ebe123/CSDempty}} from this page. Want to discuss this with more people? You can use {{tlx|rfd}} instead and bring it up for discussion at [[Wikibooks:Requests for deletion|requests for deletion]]. You can continue to edit this page, which may save it from deletion if improved. <div class="plainlinks" style="margin-top:1em; text-align:center; font-size:smaller;">'''Administrators:''' Please check the [{{fullurl:{{FULLPAGENAME}}|action=history}} page history], [{{fullurl:Special:Log|page={{FULLPAGENAMEE}}}} page log], and especially the [{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}&direction=prev&diff=prev}} last edit], before [{{fullurl:{{FULLPAGENAME}}|action=delete{{#if:A empty category so it is an "Abandoned pages displaying intent, but no actual content.".|&wpReason={{urlencode:A empty category so it is an "Abandoned pages displaying intent, but no actual content.".}}|}}}} deleting].</div> }}<includeonly>{{#ifeq:no|yes||[[Category:Candidates for speedy deletion|{{PAGENAME}}]]}} </includeonly> toy92ng1jux0f1oedm2aytpmiqyrncm 4668290 4668288 2026-09-03T13:26:52Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668290 wikitext text/x-wiki {{mbox|type=speedy|text='''This page may {{#if:|soon}} fit the criteria for [[WB:DP#Speedy_deletions|speedy deletion]]{{#if:A empty category so it is an "Abandoned pages displaying intent, but no actual content.".|&nbsp; because:''' <div style="margin-left:2em; background:#FFFFFF;{{Text default color}}; text-align:center;">A empty category so it is applicable for "Abandoned pages displaying intent, but no actual content.".</div> |.'''}} Please '''[[{{TALKPAGENAME}}|share your thoughts]]'''. Do you think this page should be kept or doesn't fit the criteria? You can remove {{tlux|Ebe123/CSDempty}} from this page. Want to discuss this with more people? You can use {{tlx|rfd}} instead and bring it up for discussion at [[Wikibooks:Requests for deletion|requests for deletion]]. You can continue to edit this page, which may save it from deletion if improved. <div class="plainlinks" style="margin-top:1em; text-align:center; font-size:smaller;">'''Administrators:''' Please check the [{{fullurl:{{FULLPAGENAME}}|action=history}} page history], [{{fullurl:Special:Log|page={{FULLPAGENAMEE}}}} page log], and especially the [{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}&direction=prev&diff=prev}} last edit], before [{{fullurl:{{FULLPAGENAME}}|action=delete{{#if:A empty category so it is an "Abandoned pages displaying intent, but no actual content.".|&wpReason={{urlencode:A empty category so it is an "Abandoned pages displaying intent, but no actual content.".}}|}}}} deleting].</div> }}<includeonly>{{#ifeq:no|yes||[[Category:Candidates for speedy deletion|{{PAGENAME}}]]}} </includeonly> 67dmk3xluyhm23euhy3dhyzen7gcgxr Template:Tlux 10 253565 4668289 2173916 2026-09-03T13:26:37Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668289 wikitext text/x-wiki <includeonly><code><nowiki>{{</nowiki>{{#ifeq:{{NAMESPACE:{{{1|{{FULLPAGENAME}}}}}}}||<!-- this is intended to be either a page in the main namespace or in the template namespace -->{{#ifeq:{{{1|{{FULLPAGENAME}}}}}|:{{PAGENAME:{{{1|{{FULLPAGENAME}}}}}}}<!-- this is intended to be in the main namespace -->|[[:{{{SISTER|}}}{{{1|{{PAGENAME}}}}}]]<!-- this is intended to be in the template namespace -->|[[:{{{SISTER|}}}User:{{{1|{{PAGENAME}}}}}|{{{1|{{PAGENAME}}}}}]]}}<!-- namespace was included -->|[[:{{{SISTER|}}}{{{1|{{FULLPAGENAME}}}}}]]}}<!-- optional parameters for mimic parameter passing in examples -->{{#ifeq:{{{2|+}}}|{{{2|-}}}|&#124;{{{2}}}}}<!-- -->{{#ifeq:{{{3|+}}}|{{{3|-}}}|&#124;{{{3}}}}}<!-- -->{{#ifeq:{{{4|+}}}|{{{4|-}}}|&#124;{{{4}}}}}<!-- -->{{#ifeq:{{{5|+}}}|{{{5|-}}}|&#124;{{{5}}}}}<!-- -->{{#ifeq:{{{6|+}}}|{{{6|-}}}|&#124;{{{6}}}}}<!-- -->{{#ifeq:{{{7|+}}}|{{{7|-}}}|&#124;{{{7}}}}}<!-- -->{{#ifeq:{{{8|+}}}|{{{8|-}}}|&#124;{{{8}}}}}<!-- -->{{#ifeq:{{{9|+}}}|{{{9|-}}}|&#124;{{{9}}}}}<!-- -->{{#ifeq:{{{10|+}}}|{{{10|-}}}|&#124;{{{10}}}}}<!-- -->{{#ifeq:{{{11|+}}}|{{{11|-}}}|&#124;{{{11}}}}}<!-- -->{{#ifeq:{{{12|+}}}|{{{12|-}}}|&#124;{{{12}}}}}<!-- -->{{#ifeq:{{{13|+}}}|{{{13|-}}}|&#124;{{{13}}}}}<!-- -->{{#ifeq:{{{14|+}}}|{{{14|-}}}|&#124;{{{14}}}}}<!-- -->{{#ifeq:{{{15|+}}}|{{{15|-}}}|&#124;{{{15}}}}}<!-- -->{{#ifeq:{{{16|+}}}|{{{16|-}}}|&#124;{{{16}}}}}<!-- -->{{#ifeq:{{{17|+}}}|{{{17|-}}}|&#124;{{{17}}}}}<!-- -->{{#ifeq:{{{18|+}}}|{{{18|-}}}|&#124;{{{18}}}}}<!-- -->{{#ifeq:{{{19|+}}}|{{{19|-}}}|&#124;{{{19}}}}}<!-- -->{{#ifeq:{{{20|+}}}|{{{20|-}}}|&#124;{{{20}}}}}<!-- -->{{#ifeq:{{{21|+}}}|{{{21|-}}}|&#124;{{{21}}}}}<!-- -->{{#ifeq:{{{22|+}}}|{{{22|-}}}|&#124;{{{22}}}}}<!-- -->{{#ifeq:{{{23|+}}}|{{{23|-}}}|&#124;{{{23}}}}}<!-- -->{{#ifeq:{{{24|+}}}|{{{24|-}}}|&#124;{{{24}}}}}<!-- -->{{#ifeq:{{{25|+}}}|{{{25|-}}}|&#124;{{{25}}}}}<!-- -->{{#ifeq:{{{26|+}}}|{{{26|-}}}|&#124;{{{26}}}}}<!-- -->{{#ifeq:{{{27|+}}}|{{{27|-}}}|&#124;{{{27}}}}}<!-- -->{{#ifeq:{{{28|+}}}|{{{28|-}}}|&#124;{{{28}}}}}<!-- -->{{#ifeq:{{{29|+}}}|{{{29|-}}}|&#124;{{{29}}}}}<!-- -->{{#ifeq:{{{30|+}}}|{{{30|-}}}|&#124;{{{30}}}}}<!-- -->{{#ifeq:{{{31|+}}}|{{{31|-}}}|&#124;{{{31}}}}}<!-- -->{{#ifeq:{{{32|+}}}|{{{32|-}}}|&#124;{{{32}}}}}<!-- -->{{#ifeq:{{{33|+}}}|{{{33|-}}}|&#124;{{{33}}}}}<!-- -->{{#ifeq:{{{34|+}}}|{{{34|-}}}|&#124;{{{34}}}}}<!-- -->{{#ifeq:{{{35|+}}}|{{{35|-}}}|&#124;{{{35}}}}}<!-- -->{{#ifeq:{{{36|+}}}|{{{36|-}}}|&#124;{{{36}}}}}<!-- -->{{#ifeq:{{{37|+}}}|{{{37|-}}}|&#124;{{{37}}}}}<!-- -->{{#ifeq:{{{38|+}}}|{{{38|-}}}|&#124;{{{38}}}}}<!-- -->{{#ifeq:{{{39|+}}}|{{{39|-}}}|&#124;{{{39}}}}}<!-- -->{{#ifeq:{{{40|+}}}|{{{40|-}}}|&#124;{{{40}}}}}<!-- -->{{#ifeq:{{{41|+}}}|{{{41|-}}}|&#124;{{{41}}}}}<!-- -->{{#ifeq:{{{42|+}}}|{{{42|-}}}|&#124;{{{42}}}}}<!-- -->{{#ifeq:{{{43|+}}}|{{{43|-}}}|&#124;{{{43}}}}}<!-- -->{{#ifeq:{{{44|+}}}|{{{44|-}}}|&#124;{{{44}}}}}<!-- -->{{#ifeq:{{{45|+}}}|{{{45|-}}}|&#124;{{{45}}}}}<!-- -->{{#ifeq:{{{46|+}}}|{{{46|-}}}|&#124;{{{46}}}}}<!-- -->{{#ifeq:{{{47|+}}}|{{{47|-}}}|&#124;{{{47}}}}}<!-- -->{{#ifeq:{{{48|+}}}|{{{48|-}}}|&#124;{{{48}}}}}<!-- -->{{#ifeq:{{{49|+}}}|{{{49|-}}}|&#124;{{{49}}}}}<!-- -->{{#ifeq:{{{50|+}}}|{{{50|-}}}|&#124;{{{50}}}}}<!-- -->{{#ifeq:{{{51|+}}}|{{{51|-}}}|&#124;{{{51}}}}}<!-- -->{{#ifeq:{{{52|+}}}|{{{52|-}}}|&#124;{{{52}}}}}<!-- -->{{#ifeq:{{{53|+}}}|{{{53|-}}}|&#124;{{{53}}}}}<!-- -->{{#ifeq:{{{54|+}}}|{{{54|-}}}|&#124;{{{54}}}}}<!-- -->{{#ifeq:{{{55|+}}}|{{{55|-}}}|&#124;{{{55}}}}}<!-- -->{{#ifeq:{{{56|+}}}|{{{56|-}}}|&#124;{{{56}}}}}<!-- -->{{#ifeq:{{{57|+}}}|{{{57|-}}}|&#124;{{{57}}}}}<!-- -->{{#ifeq:{{{58|+}}}|{{{58|-}}}|&#124;{{{58}}}}}<!-- -->{{#ifeq:{{{59|+}}}|{{{59|-}}}|&#124;{{{59}}}}}<!-- -->{{#ifeq:{{{60|+}}}|{{{60|-}}}|&#124;{{{60}}}}}<!-- -->{{#ifeq:{{{61|+}}}|{{{61|-}}}|&#124;{{{61}}}}}<!-- -->{{#ifeq:{{{62|+}}}|{{{62|-}}}|&#124;{{{62}}}}}<!-- -->{{#ifeq:{{{63|+}}}|{{{63|-}}}|&#124;{{{63}}}}}<!-- -->{{#ifeq:{{{64|+}}}|{{{64|-}}}|&#124;{{{64}}}}}<!-- -->{{#ifeq:{{{65|+}}}|{{{65|-}}}|&#124;{{{65}}}}}<!-- -->{{#ifeq:{{{66|+}}}|{{{66|-}}}|&#124;{{{66}}}}}<!-- -->{{#ifeq:{{{67|+}}}|{{{67|-}}}|&#124;{{{67}}}}}<!-- -->{{#ifeq:{{{68|+}}}|{{{68|-}}}|&#124;{{{68}}}}}<!-- -->{{#ifeq:{{{69|+}}}|{{{69|-}}}|&#124;{{{69}}}}}<!-- -->{{#ifeq:{{{70|+}}}|{{{70|-}}}|&#124;{{{70}}}}}<!-- -->{{#ifeq:{{{71|+}}}|{{{71|-}}}|&#124;{{{71}}}}}<!-- -->{{#ifeq:{{{72|+}}}|{{{72|-}}}|&#124;{{{72}}}}}<!-- -->{{#ifeq:{{{73|+}}}|{{{73|-}}}|&#124;{{{73}}}}}<!-- -->{{#ifeq:{{{74|+}}}|{{{74|-}}}|&#124;{{{74}}}}}<!-- -->{{#ifeq:{{{75|+}}}|{{{75|-}}}|&#124;{{{75}}}}}<!-- -->{{#ifeq:{{{76|+}}}|{{{76|-}}}|&#124;{{{76}}}}}<!-- -->{{#ifeq:{{{77|+}}}|{{{77|-}}}|&#124;{{{77}}}}}<!-- -->{{#ifeq:{{{78|+}}}|{{{78|-}}}|&#124;{{{78}}}}}<!-- -->{{#ifeq:{{{79|+}}}|{{{79|-}}}|&#124;{{{79}}}}}<!-- -->{{#ifeq:{{{80|+}}}|{{{80|-}}}|&#124;{{{80}}}}}<!-- -->{{#ifeq:{{{81|+}}}|{{{81|-}}}|&#124;{{{81}}}}}<!-- -->{{#ifeq:{{{82|+}}}|{{{82|-}}}|&#124;{{{82}}}}}<!-- -->{{#ifeq:{{{83|+}}}|{{{83|-}}}|&#124;{{{83}}}}}<!-- -->{{#ifeq:{{{84|+}}}|{{{84|-}}}|&#124;{{{84}}}}}<!-- -->{{#ifeq:{{{85|+}}}|{{{85|-}}}|&#124;{{{85}}}}}<!-- -->{{#ifeq:{{{86|+}}}|{{{86|-}}}|&#124;{{{86}}}}}<!-- -->{{#ifeq:{{{87|+}}}|{{{87|-}}}|&#124;{{{87}}}}}<!-- -->{{#ifeq:{{{88|+}}}|{{{88|-}}}|&#124;{{{88}}}}}<!-- -->{{#ifeq:{{{89|+}}}|{{{89|-}}}|&#124;{{{89}}}}}<!-- -->{{#ifeq:{{{90|+}}}|{{{90|-}}}|&#124;{{{90}}}}}<!-- -->{{#ifeq:{{{91|+}}}|{{{91|-}}}|&#124;{{{91}}}}}<!-- -->{{#ifeq:{{{92|+}}}|{{{92|-}}}|&#124;{{{92}}}}}<!-- -->{{#ifeq:{{{93|+}}}|{{{93|-}}}|&#124;{{{93}}}}}<!-- -->{{#ifeq:{{{94|+}}}|{{{94|-}}}|&#124;{{{94}}}}}<!-- -->{{#ifeq:{{{95|+}}}|{{{95|-}}}|&#124;{{{95}}}}}<!-- -->{{#ifeq:{{{96|+}}}|{{{96|-}}}|&#124;{{{96}}}}}<!-- -->{{#ifeq:{{{97|+}}}|{{{97|-}}}|&#124;{{{97}}}}}<!-- -->{{#ifeq:{{{98|+}}}|{{{98|-}}}|&#124;{{{98}}}}}<!-- -->{{#ifeq:{{{99|+}}}|{{{99|-}}}|&#124;{{{99}}}}}<!-- -->{{#ifeq:{{{100|+}}}|{{{100|-}}}|&#124;{{{100}}}}}<!-- -->{{#ifeq:{{{101|+}}}|{{{101|-}}}|&#124;{{{101}}}}}<!-- -->{{#ifeq:{{{102|+}}}|{{{102|-}}}|&#124;{{{102}}}}}<!-- -->{{#ifeq:{{{103|+}}}|{{{103|-}}}|&#124;{{{103}}}}}<!-- -->{{#ifeq:{{{104|+}}}|{{{104|-}}}|&#124;{{{104}}}}}<!-- -->{{#ifeq:{{{105|+}}}|{{{105|-}}}|&#124;{{{105}}}}}<!-- -->{{#ifeq:{{{106|+}}}|{{{106|-}}}|&#124;{{{106}}}}}<!-- -->{{#ifeq:{{{107|+}}}|{{{107|-}}}|&#124;{{{107}}}}}<!-- -->{{#ifeq:{{{108|+}}}|{{{108|-}}}|&#124;{{{108}}}}}<!-- -->{{#ifeq:{{{109|+}}}|{{{109|-}}}|&#124;{{{109}}}}}<!-- -->{{#ifeq:{{{110|+}}}|{{{110|-}}}|&#124;{{{110}}}}}<!-- -->{{#ifeq:{{{111|+}}}|{{{111|-}}}|&#124;{{{111}}}}}<!-- -->{{#ifeq:{{{112|+}}}|{{{112|-}}}|&#124;{{{112}}}}}<!-- -->{{#ifeq:{{{113|+}}}|{{{113|-}}}|&#124;{{{113}}}}}<!-- -->{{#ifeq:{{{114|+}}}|{{{114|-}}}|&#124;{{{114}}}}}<!-- -->{{#ifeq:{{{115|+}}}|{{{115|-}}}|&#124;{{{115}}}}}<!-- -->{{#ifeq:{{{116|+}}}|{{{116|-}}}|&#124;{{{116}}}}}<!-- -->{{#ifeq:{{{117|+}}}|{{{117|-}}}|&#124;{{{117}}}}}<!-- -->{{#ifeq:{{{118|+}}}|{{{118|-}}}|&#124;{{{118}}}}}<!-- -->{{#ifeq:{{{119|+}}}|{{{119|-}}}|&#124;{{{119}}}}}<!-- -->{{#ifeq:{{{120|+}}}|{{{120|-}}}|&#124;{{{120}}}}}<!-- -->{{#ifeq:{{{121|+}}}|{{{121|-}}}|&#124;{{{121}}}}}<!-- -->{{#ifeq:{{{122|+}}}|{{{122|-}}}|&#124;{{{122}}}}}<!-- -->{{#ifeq:{{{123|+}}}|{{{123|-}}}|&#124;{{{123}}}}}<!-- -->{{#ifeq:{{{124|+}}}|{{{124|-}}}|&#124;{{{124}}}}}<!-- -->{{#ifeq:{{{125|+}}}|{{{125|-}}}|&#124;{{{125}}}}}<!-- -->{{#ifeq:{{{126|+}}}|{{{126|-}}}|&#124;{{{126}}}}}<!-- -->{{#ifeq:{{{127|+}}}|{{{127|-}}}|&#124;{{{127}}}}}<!-- -->{{#ifeq:{{{128|+}}}|{{{128|-}}}|&#124;{{{128}}}}}<!-- -->{{#ifeq:{{{129|+}}}|{{{129|-}}}|&#124;{{{129}}}}}<!-- -->{{#ifeq:{{{130|+}}}|{{{130|-}}}|&#124;<i>...</i>}}<!-- --><nowiki>}}</nowiki></code></includeonly> 6r8q0y5cwh6lnnp2xtxkfwlug9z4to2 User talk:9E2 3 256986 4668247 2169442 2026-09-03T12:25:53Z ShakespeareFan00 46022 4668247 wikitext text/x-wiki == Welcome! == <div style="text-align:center; font-size:110%; font-weight:bold;">[[Wikibooks:Welcome|Welcome]] to Wikibooks, 9E2!</div> <!-- FIRST COLUMN --> <div style="width:49.5%; float:left; margin:0em; padding:0em;"> <div style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7;{{Text default color}};"> <div style="border-bottom:1px solid #15304f; background-color:#89b5e7;{{Text default color}}; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Crystal Clear app kedit.png|20px|link=|alt=]] '''First steps tutorial'''</div> <div style="padding:0.4em 1em 0.3em 1em;"> '''Wikibooks is for [[WB:AGF|collaborative]] development of free&nbsp;[[WB:WIW|textbooks]].''' You do not need technical skills to [[Using Wikibooks|contribute]]. You can [[WB:BOLD|easily change most books]]. Please [[WB:CHAT|introduce yourself]], and let us know what [[WB:PROJECTS|interests you]]. If you already contribute at other Wikimedia projects, our [[Wikibooks:Wikibooks for Wikimedians|Wikimedia Orientation]] should quickly get you started. </div> </div> <div style="clear:both; padding-right:1em; text-align:right; font-size:smaller">(Would you like to provide [[Template talk:Bigwelcome|feedback]] on this message?)</div> </div> <!-- SECOND COLUMN --> <div style="width:49.5%; float:left; margin:0em; padding:0em;"> <div class="collapsible" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7;{{Text default color}}; text-align:left;"> <div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7;{{Text default color}}; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Icon apps query.svg|20px|link=|alt=]] '''Getting help'''</div> <div class="NavContent" style="padding:0.4em 1em 0.3em 1em;"> * Read the [[Using Wikibooks]] book for a friendly introduction to the project, or our [[Help:Contents|help pages]] for more information. * You can get friendly help from the community in the [[WB:HELP|user assistance room]] or our [[irc:wikibooks|IRC channel]]. * Upload freely licensed files to [[commons:Wikimedia Commons|Wikimedia Commons]]. You may [[WB:RFP|request permission]] to upload [[w:fair use|fair use]] files locally. Please include author and source {{tl|information}} and a {{nowrap|{{tl|non-free use rationale}}}} for [[WB:FU|non-free]] files. </div> </div> <div class="collapsible" style="margin:0.2em; border:1px solid #14304f; background-color:#f4eed7;{{Text default color}}; text-align:left;"> <div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7;{{Text default color}};padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Nuvola filesystems trashcan full.png|20px|link=|alt=]] '''Made a mistake?'''</div> <div class="NavContent" style="padding:0.4em 1em 0.3em 1em;"> * You can [[WB:REVERT|restore]] a previously saved version. * Pages should follow the [[WB:NP|<code>'''Book Title/Chapter Title'''</code>]] naming convention. * Need to rename a page? Use the ''move'' tab (is available once your account is 4 days old - until then, ask for [[WB:HELP|help]]). * To request a page be deleted, add {{tlx|delete|''your reason''}} to the top of the page. * Was a page you made deleted? Please read the [[WB:DP|deletion policy]], and check the [[Special:Log/delete|deletion log]] to find out why. Also check the [[WB:RFD|RFD]] archives if applicable. You can request undeletion at [[WB:RFU]], or ask the administrator who deleted the page. </div> </div> <div class="collapsible selected" style="margin:0.2em; border:1px solid #15304f; background-color:#f4eed7;{{Text default color}}; text-align:left;"> <div class="title" style="border-bottom:1px solid #15304f; background-color:#89b5e7;{{Text default color}}; padding:0.2em 0.5em; font-size:110%; font-weight:bold;">[[File:Transmission icon.png|20px|link=|alt=]] '''Goodies, tips and tricks'''</div> <div class="NavContent" style="padding:0.4em 1em 0.3em 1em;"> * Please fill in [[WB:ES|the edit summary]] and [[WB:PREVIEW|preview]] your edits before saving. * Sign your name on [[WB:TALK|discussion pages]] by typing &#126;&#126;&#126;&#126; * User scripts can make many tasks easier. Look at the ''Gadgets'' tab of [[Special:Preferences|''my preferences'']]; check off the boxes for the scripts you want, and hit ''save''! </div> </div> <div style="text-align:right; padding:0.2em 0.5em 0.2em 0.5em;">Thanks. --[[User:Xania|ЗAНИA]] [[Image:Flag_of_Italy.svg|15px]][[User talk:Xania|<sup>talk</sup>]] 01:37, 18 September 2011 (UTC)</div> </div> <div style="clear:both;"> </div> 4mq4fx8w1dy26s7u210rp35y5u7dgaw C programming/stdio.h 0 258597 4668268 4666674 2026-09-03T13:04:23Z ShakespeareFan00 46022 4668268 wikitext text/x-wiki The C programming language provides many standard library functions for file input and output. These functions make up the bulk of the C standard library header <code><stdio.h></code>. The I/O functionality of C is fairly low-level by modern standards; C abstracts all file operations into operations on streams of bytes, which may be "input streams" or "output streams". Unlike some earlier programming languages, C has no direct support for random-access data files; to read from a record in the middle of a file, the programmer must create a stream, seek to the middle of the file, and then read bytes in sequence from the stream. The stream model of file I/O was popularized by the Unix operating system, which was developed concurrently with the C programming language itself. The vast majority of modern operating systems have inherited streams from Unix, and many languages in the C programming language family have inherited C's file I/O interface with few if any changes (for example, PHP). The C++ standard library reflects the "stream" concept in its syntax; see iostream. == Function overview == {{Main|C Programming/stdio.h/Function reference}} Most of the C file input/output functions are defined in <code>/stdio.h</code> (<code>/cstdio</code> header in C++). ;File access *<code>fopen</code> - opens a file *<code>freopen</code> - opens a different file with an existing stream *<code>fflush</code> - synchronizes an output stream with the actual file *<code>fclose</code> - closes a file *<code>setbuf</code> - sets the buffer for a file stream *<code>setvbuf</code> - sets the buffer and its size for a file stream *<code>fwide</code> - switches a file stream between wide character I/O and narrow character I/O ;Direct input/output *<code>fread</code> - reads from a file *<code>fwrite</code> - writes to a file ;Unformatted input/output :;Narrow character *<code>fgetc</code>, <code>getc</code> - reads a character from a file stream *<code>fgets</code> - reads a character string from a file stream *<code>fputc</code>, <code>putc</code> - writes a character to a file stream *<code>fputs</code> - writes a character string to a file stream *<code>getchar</code> - reads a character from stdin *<code>gets</code> - reads a character string from stdin *<code>putchar</code> - writes a character to stdout *<code>puts</code> - writes a character string to stdout *<code>ungetc</code> - puts a character back into a file stream :;Wide character *<code>fgetwc</code>, <code>getwc</code> - reads a wide character from a file stream *<code>fgetws</code> - reads a wide character string from a file stream *<code>fputwc</code>, <code>putwc</code> - writes a wide character to a file stream *<code>fputws</code> - writes a wide character string to a file stream *<code>getwchar</code> - reads a wide character from stdin *<code>putwchar</code> - writes a wide character to stdout *<code>ungetwc</code> - puts a wide character back into a file stream ;Formatted input/output :;Narrow character *<code>scanf</code>, <code>fscanf</code>, <code>sscanf</code> - reads formatted input from stdin, a file stream or a buffer *<code>vscanf</code>, <code>vfscanf</code>, <code>wsscanf</code> - reads formatted input from stdin, a file stream or a buffer using variable argument list *<code>printf</code>, <code>fprintf</code>, <code>sprintf</code>, <code>snprintf</code> - prints formatted output to stdout, a file stream or a buffer *<code>vprintf</code>, <code>vfprintf</code>, <code>vsprintf</code>, <code>vsnprintf</code> - prints formatted output to stdout, a file stream, or a buffer using variable argument list :;Wide character *<code>wscanf</code>, <code>fwscanf</code>, <code>swscanf</code> - reads formatted wide character input from stdin, a file stream or a buffer *<code>vwscanf</code>, <code>vfwscanf</code>, <code>vswscanf</code> - reads formatted wide character input from stdin, a file stream or a buffer using variable argument list *<code>wprintf</code>, <code>fwprintf</code>, <code>swprintf</code> - prints formatted wide character output to stdout, a file stream or a buffer *<code>vwprintf</code>, <code>vfwprintf</code>, <code>vswprintf</code> - prints formatted wide character output to stdout, a file sttream or a buffer using variable argument list ;File positioning *<code>ftell</code> - returns the current file position indicator *<code>fgetpos</code> - gets the file position indicator *<code>fseek</code> - moves the file position indicator to a specific location in a file *<code>fsetpos</code> - moves the file position indicator to a specific location in a file *<code>rewind</code> - moves the file position indicator to the beginning in a file ;Error handling *<code>clearerr</code> - clears errors *<code>feof</code> - checks for the end-of-file *<code>ferror</code> - checks for a file error *<code>perror</code> - displays a character string corresponding of the current error to stderr ;Operations on files *<code>remove</code> - erases a file *<code>rename</code> - renames a file *<code>tmpfile</code> - returns a pointer to a temporary file *<code>tmpnam</code> - returns a unique filename ==Reading from a stream using fgetc== The <code>'''fgetc'''</code> function is used to read a character from a stream. <syntaxhighlight lang="c"> int fgetc(FILE *fp); </syntaxhighlight> If successful, <code>fgetc</code> returns the next byte or character from the stream (depending on whether the file is "binary" or "text", as discussed under <code>fopen</code> above). If unsuccessful, fgetc returns <code>EOF</code>. (The specific type of error can be determined by calling <code>ferror</code> or <code>feof</code> with the file pointer.) The standard macro <code>'''getc'''</code>, also defined in <code><stdio.h></code>, behaves in almost the same way as <code>fgetc</code>, except that—being a macro—it may evaluate its arguments more than once. The standard function <code>'''getchar'''</code>, also defined in <code><stdio.h></code>, takes no arguments, and is equivalent to <code>getc(stdin)</code>. ===EOF pitfall=== A mistake when using <code>fgetc</code>, <code>getc</code>, or <code>getchar</code> is to assign the result to a variable of type <code>char</code> ''before'' comparing it to <code>EOF</code>. The following code fragments exhibit this mistake, and then show the correct approach (using type int): {| style="width:80%;margin-left: auto; margin-right: auto; " ! Mistake ! Correction |- | <syntaxhighlight lang="c" class="center"> char c; while ((c = getchar()) != EOF) putchar(c); </syntaxhighlight> | <syntaxhighlight lang="c"> int c; /* This will hold the EOF value */ while ((c = getchar()) != EOF) putchar(c); </syntaxhighlight> |} Consider a system in which the type <code>char</code> is 8&nbsp;bits wide, representing 256&nbsp;different values. <code>getchar</code> may return any of the 256&nbsp;possible characters, and it also may return <code>EOF</code> to indicate end-of-file, for a total of 257 different possible return values. When <code>getchar</code>'s result is assigned to a <code>char</code>, which can represent only 256 different values, there is necessarily some loss of information—when packing 257&nbsp;items into 256&nbsp;slots, there must be a collision. The <code>EOF</code> value, when converted to <code>char</code>, becomes indistinguishable from whichever one of the 256 characters shares its numerical value. If that character is found in the file, the above example may mistake it for an end-of-file indicator; or, just as bad, if type <code>char</code> is unsigned, then because <code>EOF</code> is negative, it can never be equal to any unsigned <code>char</code>, so the above example will not terminate at end-of-file. It will loop forever, repeatedly printing the character which results from converting <code>EOF</code> to <code>char</code>. However, this looping failure mode does not occur if the char definition is signed (C makes the signedness of the default char type implementation-dependent),<ref>C99 §6.2.5/15</ref> assuming the commonly used <code>EOF</code> value of -1. However, the fundamental issue remains that if the <code>EOF</code> value is defined outside of the range of the <code>char</code> type, when assigned to a <code>char</code> that value is sliced and will no longer match the full <code>EOF</code> value necessary to exit the loop. On the other hand, if <code>EOF</code> is within range of <code>char</code>, this guarantees a collision between <code>EOF</code> and a char value. Thus, regardless of how system types are defined, never use <code>char</code> types when testing against <code>EOF</code>. On systems where <code>int</code> and <code>char</code> are the same size (i.e., systems incompatible with minimally the POSIX and C99 standards), even the "good" example will suffer from the indistinguishability of <code>EOF</code> and some character's value. The proper way to handle this situation is to check <code>feof</code> and <code>ferror</code> after <code>getchar</code> returns <code>EOF</code>. If <code>feof</code> indicates that end-of-file has not been reached, and <code>ferror</code> indicates that no errors have occurred, then the <code>EOF</code> returned by <code>getchar</code> can be assumed to represent an actual character. These extra checks are rarely done, because most programmers assume that their code will never need to run on one of these "big <code>char</code>" systems. Another way is to use a compile-time assertion to make sure that <code>UINT_MAX > UCHAR_MAX</code>, which at least prevents a program with such an assumption from compiling in such a system. ==fwrite== In the C programming language, the <code>'''fread'''</code> and <code>'''fwrite'''</code> functions respectively provide the file operations of input and output. <code>fread</code> and <code>fwrite</code> are declared in <code><stdio.h></code>. ===Writing a file using fwrite=== fwrite is defined as <syntaxhighlight lang="c"> size_t fwrite (const void *array, size_t size, size_t count, FILE *stream); </syntaxhighlight> <code>fwrite</code> function writes a block of data to the stream. It will write an array of <code>count</code> elements to the current position in the stream. For each element, it will write <code>size</code> bytes. The position indicator of the stream will be advanced by the number of bytes written successfully. The function will return the number of elements written successfully. The return value will be equal to <code>count</code> if the write completes successfully. In case of a write error, the return value will be less than <code>count</code>. The following program opens a file named <code>sample.txt</code>, writes a string of characters to the file, then closes it. <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { FILE *fp; size_t count; const char *str = "hello\n"; fp = fopen("sample.txt", "w"); if(fp == NULL) { perror("failed to open sample.txt"); return EXIT_FAILURE; } count = fwrite(str, 1, strlen(str), fp); printf("Wrote %zu bytes. fclose(fp) %s.\n", count, fclose(fp) == 0 ? "succeeded" : "failed"); return EXIT_SUCCESS; } </syntaxhighlight> ==Writing to a stream using fputc== The <code>'''fputc'''</code> function is used to write a character to a stream. <syntaxhighlight lang="c"> int fputc(int c, FILE *fp); </syntaxhighlight> The parameter <code>c</code> is silently converted to an <code>unsigned char</code> before being output. If successful, <code>fputc</code> returns the character written. If unsuccessful, fputc returns <code>EOF</code>. The standard macro <code>'''putc'''</code>, also defined in <code><stdio.h></code>, behaves in almost the same way as <code>fputc</code>, except that—being a macro—it may evaluate its arguments more than once. The standard function <code>'''putchar'''</code>, also defined in <code><stdio.h></code>, takes only the first argument, and is equivalent to <code>putc(''c'', stdout)</code> where <code>''c''</code> is that argument. ==Example usage== The following C program opens a binary file called ''myfile'', reads five bytes from it, and then closes the file. <syntaxhighlight lang="c"> #include <stdio.h> #include <stdlib.h> int main(void) { const int count = 5; /* count of bytes to read from file */ char buffer[count] = {0}; /* initialized to zeroes */ int i, rc; FILE *fp = fopen("myfile", "rb"); if (fp == NULL) { perror("Failed to open file \"myfile\""); return EXIT_FAILURE; } for (i = 0; (rc = getc(fp)) != EOF && i < count; buffer[i++] = rc) ; fclose(fp); if (i == count) { puts("The bytes read were..."); for (i = 0; i < count; i++) printf("%x ", buffer[i]); puts(""); } else fputs("There was an error reading the file.\n", stderr); return EXIT_SUCCESS; } </syntaxhighlight> ==References== {{Reflist}} {{BookCat}} lhkwf5cziydjq1szb5fm8u2c38idhzh Sensory Systems/Neurosensory Implants/Cochlear Implants 0 265490 4668524 3452515 2026-09-04T08:42:57Z Thomas.haslwanter 89715 Added sections on "Middle ear implants" and "Bone conduction" 4668524 wikitext text/x-wiki ==Cochlear Implants== [[Image:Cochlear implant.jpg|left|thumb|250px|Cochlear implant]] A cochlear implant (CI) is a surgically implanted electronic device that replaces the mechanical parts of the auditory system by directly stimulating the auditory nerve fibers through electrodes inside the cochlea. Candidates for cochlear implants are people with severe to profound sensorineural hearing loss in both ears and a functioning auditory nervous system. They are used by post-lingually deaf people to regain some comprehension of speech and other sounds as well as by pre-lingually deaf children to enable them to gain spoken language skills. (Diagnosis of hearing loss in newborns and infants is done using otoacoustic emissions, and/or the recording of auditory evoked potentials.) A quite recent evolution is the use of bilateral implants allowing recipients basic sound localization. ===Parts of the cochlear implant=== The implant is surgically placed under the skin behind the ear. The basic parts of the device include: ''External:'' * a microphone which picks up sound from the environment * a speech processor which selectively filters sound to prioritize audible speech and sends the electrical sound signals through a thin cable to the transmitter, * a transmitter, which is a coil held in position by a magnet placed behind the external ear, and transmits the processed sound signals to the internal device by electromagnetic induction, ''Internal:'' [[Image:Cochlear Implant, by MedEl.jpg|thumb|RIGHT|The cochlear implant (left), microphone & signal processor (middle), and the remote control accessory (right)]] * a receiver and stimulator secured in bone beneath the skin, which converts the signals into electric impulses and sends them through an internal cable to electrodes, * an array of up to 24 electrodes wound through the cochlea, which send the impulses to the nerves in the scala tympani and then directly to the brain through the auditory nerve system === Signal processing for cochlear implants === In normal hearing subjects, the primary information carrier for speech signals is the envelope, whereas for music, it is the fine structure. This is also relevant for tonal languages, like Mandarin, where the meaning of words depends on their intonation. It was also found that interaural time delays coded in the fine structure determine where a sound is heard from rather than interaural time delays coded in the envelope, although it is still the speech signal coded in the envelope that is perceived. The speech processor in a cochlear implant transforms the microphone input signal into a parallel array of electrode signals destined for the cochlea. Algorithms for the optimal transfer function between these signals are still an active area of research. The first cochlear implants were single-channel devices. The raw sound was band-passed filtered to include only the frequency range of speech, then modulated onto a 16&nbsp;kHz wave to allow the electrical signal to electrically couple to the nerves. This approach was able to provide very basic hearing, but was extremely limited in that it was completely unable to take advantage of the frequency-location map of the cochlea. The advent of multi-channel implants opened the door to try a number of different speech-processing strategies to facilitate hearing. These can be roughly divided into Waveform and Feature-Extraction strategies. ==== Waveform Strategies ==== These generally involve applying a non-linear gain on the sound (as an input audio signal with a ~30dB dynamic range must be compressed into an electrical signal with just a ~5dB dynamic range), and passing it through parallel filter banks. The first waveform strategy to be tried was Compressed Analog approach. In this system, the raw audio is initially filtered with a gain-controlled amplifier (the gain-control reduces the dynamic range of the signal). The signal is then passed through parallel band-pass filters, and the output of these filters goes on to stimulate electrodes at their appropriate locations. A problem with the Compressed Analog approach was that the there was a strong interaction-effect between adjacent electrodes. If electrodes driven by two filters happened to be stimulating at the same time, the superimposed stimulation could cause unwanted distortion in the signals coming from hair cells that were within range of both of these electrodes. The solution to this was the Continuous Interleaved Sampling Approach - in which the electrodes driven by adjacent filters stimulate at slightly different times. This eliminates the interference effect between nearby electrodes, but introduces the problem that, due to the interleaving, temporal resolution suffers. [[File:Continuous Interleaved Sampling.jpg|thumb|400px|Schematic representation of Continuous Interleaved Sampling (CIS). The processing ("Proc") comprises the envelope detection, amplitude compression, digitization, and pulse modulation.]] ==== Feature-Extraction Strategies ==== These strategies focus less on transmitting filtered versions of the audio signal and more on extracting more abstract features of the signal and transmitting them to the electrodes. The first feature-extraction strategies looked for the formants (frequencies with maximum energy) in speech. In order to do this, they would apply wide band filters (e.g. 270&nbsp;Hz low-pass for F0 - the base formant, 300&nbsp;Hz-1&nbsp;kHz for F1, and 1&nbsp;kHz-4&nbsp;kHz for F2), then calculate the formant frequency, using the zero-crossings of each of these filter outputs, and formant-amplitude by looking at the envelope of the signals from each filter. Only electrodes corresponding to these formant frequencies would be activated. The main limitation of this approach was that formants primarily identify vowels, and consonant information, which primarily resides in higher frequencies, was poorly transmitted. The MPEAK system later improved on this design my incorporating high-frequency filters which could better simulate unvoiced sounds (consonants) by stimulating high-frequency electrodes, and formant frequency electrodes at random intervals.<ref>http://www.utdallas.edu/~loizou/cimplants/tutorial/tutorial.htm</ref><ref>www.ohsu.edu/nod/documents/week3/Rubenstein.pdf</ref><ref>www.acoustics.bseeber.de/implant/ieee_talk.pdf</ref> === Current Developments === [[File:SPEAK.PNG|thumb | 500 px |Block diagram of the SPEAK processing scheme]] Currently, the leading strategy is the SPEAK system, which combines characteristics of Waveform and Feature-Detection strategies. In this system, the signal passes through a parallel array of 20 band-pass filters. The envelope is extracted from each of these and several of the most powerful frequencies are selected (how many depends on the shape of the spectrum), and the rest are discarded. This is known as a 'n-of-m" strategy. The amplitudes of these are then logarithmically compressed to adapt the mechanical signal range of sound to the much narrower electrical signal range of hair cells. ====Multiple microphones==== On its newest implants, the company Cochlear uses 3 microphones instead of one. The additional information is used for beam-forming, i.e. extracting more information from sound coming from straight ahead. This can improve the signal-to-noise ratio when talking to other people by up to 15dB, thereby significantly enhancing speech perception in noisy environments. ====Integration CI – Hearing Aid==== Preservation of low-frequency hearing after cochlear implantation is possible with careful surgical technique and with careful attention to electrode design. For patients with remaining low-frequency hearing, the company MedEl offers a combination of a cochlea implant for the higher frequencies, and classical hearing aid for the lower frequencies. This system, called EAS for electric-acoustic stimulation, uses with a lead of 18mm, compared to 31.5&nbsp;mm for the full CI. (The length of the cochlea is about 36&nbsp;mm.) This results in a significant improvement of music perception, and improved speech recognition for tonal languages. ====Fine Structure==== [[File:HilbertTransform EnvelopePhase.png|thumb|Graph showing how envelope (in red) and phase (black dots, for zero crossings) of a signal can be simply derived with the Hilbert Transform.]] For high frequencies, the human auditory system uses only tonotopic coding for information. For low frequencies, however, also temporal information is used: the auditory nerve fires synchronously with the phase of the signal. In contrast, the original CIs only used the power spectrum of the incoming signal. In its new models, MedEl incorporates the timing information for low frequencies, which it calls fine structure, in determining the timing of the stimulation pulses. This improves music perception, and speech perception for tonal languages like Mandarin. Mathematically, envelope and fine-structure of a signal can be elegantly obtained with the ''Hilbert Transform'' (see Figure). The corresponding Python code is available under.<ref> {{cite web | title = Hilbert Transformation [Python] | url = http://work.thaslwanter.at/CSS/Code/CI_hilbert.py | work = private communications | author = T. Haslwanter | publisher = | year = 2012 }}</ref> ====Virtual Electrodes==== The numbers of electrodes available is limited by the size of the electrode (and the resulting charge and current densities), and by the current spread along the endolymph. To increase the frequency specificity, one can stimulate two adjacent electrodes. Subjects report to perceive this as a single tone at a frequency intermediate to the two electrodes. [[File:Simulation_CI.jpg|500 px|thumbnail|Simulation of the stimulation strength of a cochlear implant]] === Simulation of a cochlear implant === Sound processing in cochlear implant is still subject to a lot of research and one of the major product differentiations between the manufacturers. However, the basic sound processing is rather simple and can be implemented to gain an impression of the quality of sound perceived by patients using a cochlear implant. The first step in the process is to sample some sound and analyze its frequency. Then a time-window is selected, during which we want to find the stimulation strengths of the CI electrodes. There are two ways to achieve that: i) through the use of linear filters ( [[Sensory Systems/Auditory_System#Gammatone_Filters|see ''Gammatone filters'']]); or ii) through the calculation of the powerspectrum (see [[Sensory_Systems/Auditory_System#Spectral_Analysis_of_Biological_Signals|''Spectral Analysis'']]). ===Cochlear implants and Magnetic Resonance Imaging=== With more than 150 000 implantations worldwide, Cochlear Implants (CIs) have now become a standard method for treating severe to profound hearing loss. Since the benefits of CIs become more evident, payers become more willing to support CIs and due to the screening programs of newborns in most industrialized nations, many patients get CIs in infancy and will likely continue to have them throughout their lives. Some of them may require diagnostic scanning during their lives which may be assisted by imaging studies with Magnetic resonance imaging (MRI). For large segments of the population, including patients suffering from stroke, back pain or headache, MRI has become a standard method for diagnosis. MRI uses pulses of magnetic fields to generate images and current MRI machines are working with 1.5 Tesla magnet fields. 0.2 to 4.0 Tesla devices are common and the radiofrequency power can peak as high as 6&nbsp;kW in a 1.5 Tesla machine. Cochlear implants have been historically thought to incompatible with MRI with magnetic fields higher than 0.2 T. The external parts of the device always have to be removed. There are different regulations for the internal parts of the device. Current US Food and Drug Administration (FDA) guidelines allow limited use of MRI after CI implantation. The pulsar and Sonata (MED-EL Corp, Innsbruck, Austria) devices are approved for 0.2 T MRI with the magnet in place. The Hi-res 90K (Advanced Bionics Corp, Sylmar, CA, USA) and the Nucleus Freedom (Cochlear Americas, Englewood, CO, USA) are approved for up to 1.5 T MRI after surgical removal of the internal magnet. Each removal and replacement of the magnet can be done using a small incision under local anesthesia, but the procedure is likely to weaken the pocket of the magnet and to risk infection of the patient. Cadaver studies have shown that there is a risk that the implant may be displaced from the internal device in a 1.5 T MRI scanner. However, the risk could be eliminated when a compression dressing was applied. Nevertheless, the CI produces an artifact that could potentially reduce the diagnostic value of the scan. The size of the artifact will be larger relative to the size of the patient’s head and this might be particularly challenging for MRI scans with children. A recent study by Crane et al., 2010 found out that the artifact around the area of the CI had a mean anterior-posterior dimension of 6.6 +/- 1.5&nbsp;cm (mean +/- standard deviation) and a left-right dimension averaging 4.8 +/- 1.0&nbsp;cm (mean +/- standard deviation) (Crane et al., 2010). (<ref>Crane BT, Gottschalk B, Kraut M, Aygun N, Niparko JK (2010) Magnetic resonance imaging at 1.5 T after cochlear implantation. Otol Neurotol 31:1215-1220</ref>) === Middle Ear Implants === Not all hearing deficits require cochlea implants. The first choice for treating patients with hearing loss are always hearing aids (HAs). Patients with mild-to-severe conductive, sensorineural, or mixed hearing loss who cannot wear HAs or who are unsatisfied with conventional HAs can receive ''bone conduction devices'' (see below) or ''middle ear implants (MEIs)''. MEI are no ''neurosensory implants'', since they do not directly stimulate the hair cells or the auditory nerve. However, their working is remarkably similar to cochlea implants (CIs). Like CIs, they have an external auditory processor that receives and analyzes auditory signals. And also like CIs those signals are transmitted via induction to a receiver/decoder that is implanted under the skin. But in contrast to CIs, MEIs do not rely on electrical stimulation, but instead use microvibrations. The most commonly used device is the ''Vibrant Soundbridge (VBI)'' (MedEl, Innsbruck, Austria). The VBI uses a ''floating mass transducer'' to generate extremely small vibrations, around 0.1-0.001 μm. (Labassi et al., 2017). <ref>Labassi S, Beliaeff M, Pean V, Van de Heyning P (2017) The Vibrant Soundbridge middle ear implant: A historical overview. Cochlear Implants International, Vol. 18 No. 6:314-323</ref> Depending on the anatomical situation and the hearing deficits, these vibrations can be coupled to the incus, the stapes, or the round window of the inner ear. The VSB has been available to patients since 1996 in Europe; FDA approval was received in 2000. Approximately three out of four patients are satisfied or very satisfied with the results, and the hearing quality is typically better than the one achieved with classical HAs. And since 2014, the latest version of the VSB is also MRI compatible up to 1.5 T. (Labassi et al., 2017) === Bone Vibration === As mentioned above, conventional HAs are the first choice for most forms of hearing loss. And reconstructive otosurgery is the first choice if the possibility of hearing aid independence exists. For patients who have an inadequate effect from conventional HAs or are unable to use them, ''bone conduction'' can be sufficient to improve the hearing. (https://en.wikipedia.org/wiki/Bone_conduction) Bone conduction devices (BCDs) can be transcutaneous (i.e. from outside the skin) or percutaneous (implanted under the skin). Devices are available from a number of well established companies. (Koro et al, 2025)<ref>Koro E, Wales J, Werner M (2025) Bone conduction implants and active middle ear implants for adults. Science Progress Vol 108(1) 1-14</ref> Bone conduction hearing occurs when vibrations applied to the skull are propagated to the innner ear, eliciting waves on the basilar membrane that lead to stimulation of the auditory nerve. The concept of bone conduction has been known since the sixteenth century. And the first medical BCD-implants in humans were performed in 1977. (Koro et al, 2025) {{BookCat}} qetwpwt4mvbjjbkbe8fotvmor5qsldd User:Duplode/Haskell/PrintVersion.hs 2 269703 4668284 2566240 2026-09-03T13:23:03Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668284 wikitext text/x-wiki A simple script for generating the print version which builds upon Kowey's original, mvs-backed, program. To run it under Linux, save the code block contents as a Haskell source file (say, <code>PrintVersion.hs</code>) and follow the instructions in the comments. Other notes: * Get mw at https://github.com/ianweller/mw . * The script below is granted to the public domain through the means of [http://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0] ([[User:Duplode/Licenses/CC0|full text]]). <source lang="haskell"> #!/usr/bin/env runhaskell -- PrintVersion.hs - A simple script for generating the print version -- of the Haskell Wikibook. -- Originally written in 2007 by Eric Kow and in 2012 by Daniel Mlot. -- For further information visit -- <http://en.wikibooks.org/wiki/User:Duplode/Haskell/PrintVersion.hs>. -- To the extent possible under law, the author(s) have dedicated all -- copyright and related and neighboring rights to this software to the -- public domain worldwide. This software is distributed without any -- warranty. -- You should have received a copy of the CC0 Public Domain Dedication -- along with this software. If not, see -- <http://creativecommons.org/publicdomain/zero/1.0/>. -- Making the print version of the Haskell tutorial wikibook can be a -- slight pain, so it's nice to automate it. -- Note that to use this script you will need a copy of mw, which is -- responsible for talking to the Wikibooks server. mw can be obtained -- from https://github.com/ianweller/mw . It depends on bzrlib (from -- bzr, the Bazaar VCS) and python-simplemediawiki -- (see https://github.com/ianweller/python-simplemediawiki). -- Both deps can be found, e.g., on the Fedora repositories). -- Setting it up -- ------------- -- mkdir haskell-wikibook -- cp PrintVersion.hs haskell-wikibook -- cd haskell-wikibook -- mw init http://en.wikibooks.org/w/api.php -- mw pull 'Haskell!Print_version.wiki' -- Running it -- ---------- -- cd haskell-wikibook -- ./PrintVersion.hs -- mw login -- mw commit -m "update print version" module Main where import Data.List (isInfixOf) import Data.Maybe (mapMaybe) import System.Process (runCommand, waitForProcess) main :: IO () main = do ps <- extractFrom navFile -- parts cs <- mapM (extractFrom . partPath) ps -- chapters writeFile printVersionFile $ toPrintVersion ps cs where extractFrom f = withMw ("pull " ++ f) $ extract `fmap` readFile f withMw cmd' a = do let cmd = "mw " ++ cmd' x <- waitForProcess =<< runCommand cmd x `seq` a -- we're being sloppy, and don't care what mw does navFile, printVersionFile :: FilePath navFile = "Template:Haskell!Navigation.wiki" printVersionFile = "Haskell!Print_version.wiki" partPath :: String -> FilePath partPath s = "Template:Haskell_chapter!" ++ map tweak s ++ ".wiki" where tweak ' ' = '_' tweak c = c -- --------------------------------------------------------------------- -- Input -- --------------------------------------------------------------------- extract :: String -> [String] extract = map degunk . filter isPC . lines degunk :: String -> String degunk = takeWhile notEnd . tail . dropWhile (/= '/') where notEnd x = x /= '|' && x /= ']' isPC :: String -> Bool isPC s = "Haskell/" `isInfixOf` s -- --------------------------------------------------------------------- -- Output -- --------------------------------------------------------------------- toPrintVersion :: [String] -> [[String]] -> String toPrintVersion parts chapters = unlines $ [ "__NOTOC__ __NOEDITSECTION__" , "{{Print version notice|Haskell|Haskell/Print_version}}" , "" , "= Table Of Contents =" ] ++ concatMap toc parts ++ (concat $ zipWith body parts chapters) where toc c = [ "== " ++ c ++ " ==" , "" , ":{{Haskell chapter/" ++ c ++ "|sep=" , ":}}" , "" ] body p cs = [ "----" , "= " ++ p ++ " =" , "----" , "" ] ++ concatMap bodyC cs bodyC c = [ "= " ++ c ++ " =" , "{{:Haskell/" ++ c ++ "}}" , "" ] </source> 5zbwvc74igsjtiuckjqoxok9pmghmzj User:Duplode/wb2pdf installation on Fedora 2 270090 4668283 2314317 2026-09-03T13:22:33Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668283 wikitext text/x-wiki This page provides advice on how to install the MediaWiki-to-LaTeX converter wb2pdf in Fedora. It is wholly based in [[en:User:Duplode|my]] own experience with F16, so take it with a grain of salt and adapt the details to your system if need be. You will likely want to check [[:de:Benutzer:Dirk_Huenniger/wb2pdf|the main wb2pdf page]], with download links and usage instructions, and in particular [[:de:Benutzer:Dirk_Huenniger/wb2pdf/ubuntu|the installation guide for Ubuntu]], from which this page was originally derived. == The TeXLive 2011 repository == The default Fedora 16 repositories carry an outdated set of TeXLive packages which lacks many things we will need for wb2pdf. Before installing the packages, it is necessary to install the test repository for TeXLive 2011 (see this [http://fedoraproject.org/wiki/Features/TeXLive Fedora Project page] for details and instructions for Fedora versions other than 16). In Fedora 16, run: su -c 'rpm -i http://jnovy.fedorapeople.org/texlive/2011/packages.fc16/texlive-release.noarch.rpm' su -c 'yum clean all' If you already have the older TeXLive installed, you will also need to su -c 'yum update' == Installing packages == Next, we will install all packages needed for building and running wb2pdf, including the TexLive ones. Here is the yum command, in one shot: su -c 'yum install subversion python3 python3-tkinter ImageMagick librsvg2 fontforge-devel ghc ghc-regex-compat-devel ghc-HTTP-devel ghc-split-devel ghc-MissingH-devel cabal-install texlive-scheme-basic texlive-collection-latexrecommended texlive-collection-latexextra texlive-collection-fontsrecommended texlive-collection-fontsextra texlive-collection-games texlive-collection-humanities texlive-collection-science texlive-arabtex texlive-cjk texlive-collection-langcjk texlive-collection-langcyrillic texlive-collection-langgreek texlive-collection-langvietnamese texlive-cm-super texlive-gnu-freefont wqy-zenhei-fonts' The same packages, in a more readable presentation: su -c 'yum install subversion python3 python3-tkinter ImageMagick librsvg2 fontforge-devel' su -c 'yum install ghc ghc-regex-compat-devel ghc-HTTP-devel ghc-split-devel ghc-MissingH-devel cabal-install' su -c 'yum install texlive-scheme-basic texlive-collection-latexrecommended texlive-collection-latexextra' su -c 'yum install texlive-collection-fontsrecommended texlive-collection-fontsextra texlive-collection-games' su -c 'yum install texlive-collection-humanities texlive-collection-science texlive-arabtex texlive-cjk' su -c 'yum install texlive-collection-langcjk texlive-collection-langcyrillic texlive-collection-langgreek' su -c 'yum install texlive-collection-langvietnamese texlive-cm-super texlive-gnu-freefont wqy-zenhei-fonts' (This list was inferred from the [[:de:Benutzer:Dirk_Huenniger/wb2pdf/ubuntu|Ubuntu instructions]]; compare with that one if you find some package is missing - and if so I kindly ask you to correct the commands here.) There are two packages which are not in the Fedora repositories. ghc-hxt will be automatically installed by Cabal (the Haskell package system) when you build wb2pdf; there is also unifont, which will be dealt with in a later step. == Building wb2pdf == Next, we will get the sources and build wb2pdf: svn co https://wb2pdf.svn.sourceforge.net/svnroot/wb2pdf wb2pdf cd wb2pdf/trunk cabal update cabal install cd src python3 makelinuxbins.py Note that I am assuming a per-user (as opposed to global) installation of wb2pdf by cabal. == Building and installing megafont == wb2pdf requires a set of fonts, called megafont, which is a combination of the unifont, FreeSerif ans wqy-zenhei fonts. We need to build and install megafont to the LaTeX tree. wb2pdf comes with a python script which help building megafont. First, however, you will need to download unifont, which is not in the Fedora repositories. You can get it from [http://unifoundry.com/unifont.html this page] (the first link to a ttf.gz file). Extract it to the <code>font</code> sudirectory of the svn trunk and rename the ttf file to unifont.ttf . The script for installing megafont is in the same <code>font</code> subdirectory. To run it, then, do: cd ../font su -c 'python3 installunifont_fedora.py' The script will install the fonts to the LaTeX tree for local additions, as set in your system by the file /usr/share/texlive/texmf/web2c/texmf.cnf . You can find it with: kpsewhich --var-value TEXMFLOCAL == Updating the TeX tree == (This section is based in information from [http://www.tug.org/fonts/fontinstall.html this page from the TeX Users Group].) Finally, we need to register the megafont fonts in the TeX tree. To do that, run the following commands: su -c 'texhash' updmap --enable Map=megafont.map su -c 'texhash' Again, note that the updmap step is being performed locally, and not globally. wb2pdf is now ready to run: cd ../src/ python3 gui.py And that's it - for further instructions, see the [[:de:Benutzer:Dirk Huenniger/wb2pdf/manual|wb2pdf manual]]. ppys2533hgxxkkhg31oa6hj66dqdvkg User:Duplode/State combined 2 270264 4668280 3460036 2026-09-03T13:21:06Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668280 wikitext text/x-wiki = Combined text = = UM source text = Stateful computations are very common operations, but the way they are usually implemented in procedural or object-oriented languages cannot be replicated in Haskell. A <code>State</code> monad is introduced to allow states of any complexity to be represented. == The Problem with Haskell and State == If you programmed in any language before, chances are you wrote some functions that "kept state". In case you did not encounter the concept before, a ''state'' is one or more variables that are required to perform some computation, but are not among the arguments of the relevant function. In fact, object-oriented languages like C++ make extensive usage of state variables in objects in the form of member variables. Procedural languages like C use variables outside the current scope to keep track of state. In Haskell we can very often keep track of state by passing parameters or by pattern matching of various sorts, but in some cases it is appropriate to find a more general solution. We will consider the common example of generation of pseudo-random numbers in pure functions. === Pseudo-Random Numbers === [[:wikipedia:Random number generation|Generating actually random numbers]] is a very complicated subject; we will consider [[:wikipedia:Pseudorandom number generator|''pseudo''-random numbers]]. They are called "pseudo" because they are not really random, they only look like it. Starting from an initial state (commonly called the ''seed''), they produce a sequence of numbers that have the appearance of being random. Every time a pseudo-random number is requested, a global state is updated: that's the part we have problems with in Haskell, since it is a side effect from the point of view of the function requesting the number. Sequences of pseudo-random numbers can be replicated exactly if the initial seed and the algorithm is known. === Implementation in Haskell === Producing a pseudo-random number in most programming languages is very simple: there is usually a function, such as C or C++'s <code>rand()</code>, that provides a pseudo-random value (or a random one, depending on the implementation). Haskell has a similar one in the <code>System.Random</code> module: > :module System.Random > :type randomIO randomIO :: (Random a) => IO a > randomIO -1557093684 Obviously, save eerie coincidences, the value you will obtain will be different. A disadvantage of <code>randomIO</code> is that it requires us to utilise the <code>IO</code> monad, which breaks purity requirements. Usage of the <code>IO</code> monad is dictated by the process of updating the global generator state, so that the next time we call <code>randomIO</code> the value will be different. === Implementation with Functional Purity === In general, we do not want to use the <code>IO</code> monad if we can help it, because of the loss of guarantees on no side effects and functional purity. Indeed, we can build a ''local'' generator (as opposed to the global generator, invisible to us, that <code>randomIO</code> uses) using <code>mkStdGen</code>, and use it as seed for the <code>random</code> function, which in turn returns a tuple with the pseudo-random number that we want and the generator to use the next time: > :module System.Random > let generator = mkStdGen 0 -- "0" is our seed > random generator :: (Int, StdGen) (2092838931,1601120196 1655838864) And in this case, since we are using exactly the same generator, you will obtain the same value <code>2092838931</code>, always the same no matter how many times you call <code>random</code>. We have now regained functional purity, but a function supposed to provide pseudo-random numbers that generates always the same value is not very helpful: what we need is a way to automate the extraction of the second member of the tuple (i.e. the new generator) and feed it to a new call to <code>random</code>; and that is where the <code>State</code> monad comes into the picture. == Definition of the State Monad == :''Note: in some package systems used for GHC, the <code>Control.Monad.State</code> module is in a separate package, usually indicated by MTL (Monad Transformer Library).'' The Haskell type <code>State</code> is defined as a function that consumes state, and produces a result and the state after the result has been extracted. The definition is wrapped inside a <code>newtype</code> to avoid pattern matching, so that no one can explicitly pattern-match and extract state unless we allow it. <source lang="haskell"> newtype State state result = State { runState :: state -> (result, state) } </source> The name <code>State</code> is actually a misnomer: it is not the state itself, but rather a ''state processor''. === Instantiating the Monad === Note also that <code>State</code> has ''two'' type parameters, one for the state and one for the result: all other main types of monads have only one (<code>Maybe</code>, lists, <code>IO</code>). This means that, when we instantiate the monad, we are actually leaving the parameter for the state type: <source lang="haskell"> instance Monad (State state_type) </source> This means that the "real" monad will be <code>State String</code>, <code>State Int</code>, or <code>State SomeLargeDataStructure</code>, not <code>State</code> itself. The <code>return</code> function is implemented as: <source lang="haskell"> return :: result -> State state result return r = State ( \s -> (r, s) ) </source> In words, giving a value to <code>return</code> produces a function, wrapped in the <code>State</code> constructor: this function takes a state value, and returns it unchanged as the second member of a tuple, together with the specified result value. Binding is a bit intricate: <source lang="haskell"> (>>=) :: State state result_a -> (result_a -> State state result_b) -> State state result_b processor >>= processorGenerator = State $ \state -> let (result, state') = runState processor state in runState (processorGenerator result) state' </source> The idea is that, given a state processor and a function that can generate another processor given the result of the first one, these two processors are combined to obtain a function that takes the ''initial'' state, and returns the ''second'' result and state (i.e. after the second function has processed them). === Setting and Accessing the State === The monad instantiation allows us to manipulate various state processors, but you may at this point wonder where exactly the state comes from in the first place. <code>State state_type</code> is also an instance of the <code>MonadState</code> class, which provides two additional functions: <source lang="haskell"> put newState = State $ \_ -> ((), newState) </source> This function will generate a state processor given a state. The processor's input will be disregarded, and the output will be a tuple carrying the state we provided. Since we do not care about the result (we are discarding the input, after all), the first element of the tuple will be null. The specular operation is to read the state. This is accomplished by <code>get</code>: <source lang="haskell"> get = State $ \state -> (state, state) </source> The resulting state processor is going to produce the input <code>state</code> in both positions of the output tuple, as a result and as a state, so that it may be bound to other processors. === Getting Values and State === From the definition of <code>State</code>, we know that <code>runState</code> is an accessor to apply to a <code>State a b</code> value to get the state-processing function; this function, given an initial state, will return the extracted value and the new state. Other similar, useful functions are <code>evalState</code> and <code>execState</code>, which work in a very similar fashion. Function <code>evalState</code>, given a <code>State a b</code> and an initial state, will return the extracted value only, whereas <code>execState</code> will return only the new state; it is possibly easiest to remember them as defined as: <source lang="haskell"> evalState stateMonad value = fst ( runState stateMonad value ) execState stateMonad value = snd ( runState stateMonad value ) </source> == Example: Rolling Dice == [[File:Dice.jpg|thumb|<code>randomRIO (1,6)</code>]] Suppose we are coding a game in which at some point we need an element of chance. In real-life games that is often obtained by means of dice, which we will now try to simulate with Haskell code. For starters, we will consider the result of throwing two dice: to do that, we resort to the function <code>randomR</code>, which allows to specify an interval from which the pseudo-random values will be taken; in the case of a die, it is <code>randomR (1,6)</code>. In case we are willing to use the <code>IO</code> monad, the implementation is quite simple, using the <code>IO</code> version of <code>randomR</code>: <source lang="haskell"> import Control.Monad import System.Random rollDiceIO :: IO (Int, Int) rollDiceIO = liftM2 (,) (randomRIO (1,6)) (randomRIO (1,6)) </source> The two numbers will be returned as a tuple. {{Exercises|1= #Implement a function <code>rollNDiceIO :: Int -> IO [Int]</code> that, given an integer, returns a list with that number of pseudo-random integers between 1 and 6.}} === Getting Rid of the <code>IO</code> Monad === Suppose that for some reason we do not want to use the <code>IO</code> monad: we may want the function to stay pure, or we may want a sequence of numbers that is the same in every run, for repeatability. To do that, we can produce a generator using the <code>mkStdGen</code> function in the <code>System.Random</code> library: > mkStdGen 0 1 1 The argument to <code>mkStdGen</code> is an <code>Int</code> that functions as a seed. With that, we can generate a pseudo-random integer number in the interval between 1 and 6 with: > randomR (1,6) (mkStdGen 0) (6,40014 40692) We obtained a tuple with the result of the dice throw (6) and the new generator (40014 40692). A simple implementation that produces a tuple of two pseudo-random integers is then: <source lang="haskell"> clumsyRollDice :: (Int, Int) clumsyRollDice = (n, m) where (n, g) = randomR (1,6) (mkStdGen 0) (m, _) = randomR (1,6) g </source> [[File:Stone Dice 17.JPG|thumb|[http://en.wikipedia.org/wiki/Boxcars_%28slang%29 Boxcars!]]] When we run the function, we get: > clumsyRollDice (6, 6) The implementation of <code>clumsyRollDice</code> works, but we have to manually write the passing of generator <code>g</code> from one <code>where</code> clause to the other. This is pretty easy now, but will become increasingly cumbersome if we want to produce large sets of pseudo-random numbers. It is also error-prone: what if we pass one of the middle generators to the wrong line in the <code>where</code> clause? {{Exercises|1= #Implement a function <code>rollDice :: StdGen -> ((Int, Int), StdGen)</code> that, given a generator, return a tuple with our random numbers as first element and the last generator as the second.}} === Introducing <code>State</code> === We will now try to solve the clumsiness of the previous approach introducing the <code>State StdGen</code> monad. For convenience, we give it a name with a type synonym: <source lang="haskell"> type GeneratorState = State StdGen </source> Remember, however, that the type of <code>GeneratorState Int</code> is really <code>StdGen -> (Int, StdGen)</code>, so it is not really the generator state, but a processor of the generator state. The generator state itself is produced by the <code>mkStdGen</code> function. Note that <code>GeneratorState</code> does not specify what type of values we are going to extract, only the type of the state. We can now produce a function that, given a <code>StdGen</code> generator, outputs a number between 1 and 6: <source lang="haskell"> rollDie :: GeneratorState Int rollDie = do generator <- get let (value, newGenerator) = randomR (1,6) generator put newGenerator return value </source> The <code>do</code> notation is in this case much more readable; let's go through each of the steps: # First, we take out the pseudo-random generator with <code>get</code>: the <code><-</code> notation extracts the ''value'' from the <code>GeneratorState</code> monad, not the ''state''; since it is the state we want, we use <code>get</code>, that extracts the state and outputs it as the value (look again at the definition of <code>get</code> above, if you have doubts). # Then, we use the <code>randomR</code> function to produce an integer between 1 and 6 using the generator we took; we also store the new generator graciously returned by <code>randomR</code>. # We then set the state to be the <code>newGenerator</code> using the <code>put</code> function, so that the next call will use a different pseudo-random generator; # Finally, we inject the result into the <code>GeneratorState</code> monad using <code>return</code>. We can finally use our monadic die: > evalState rollDie (mkStdGen 0) 6 At this point, a legitimate question is why we have involved monads and built such an intricate framework only to do exactly what <code>fst $ randomR (1,6)</code> does. The answer is illustrated by the following function: <source lang="haskell"> rollDice :: GeneratorState (Int, Int) rollDice = liftM2 (,) rollDie rollDie </source> We obtain a function producing ''two'' pseudo-random numbers in a tuple. Note that these are in general different: > evalState rollDice (mkStdGen 666) (6,1) That is because, under the hood, the monads are passing state to each other. This used to be very clunky using <code>randomR (1,6)</code>, because we had to pass state manually; now, the monad is taking care of that for us. Assuming we know how to use the lifting functions, constructing intricate combinations of pseudo-random numbers (tuples, lists, whatever) has suddenly become much easier. {{Exercises|1= #Similarly to what was done for <code>rollNDiceIO</code>, implement a function <code>rollNDice :: Int -> GeneratorState [Int]</code> that, given an integer, returns a list with that number of pseudo-random integers between 1 and 6.}} {{BookCat}} == Producing Pseudo-Random Values of Different Types: the <code>Random</code> class == Until now, absorbed in the die example, we considered only <code>Int</code> as the type of the produced pseudo-random number. However, already when we defined the <code>GeneratorState</code> monad, we noticed that it did not specify anything about the type of the returned value. In fact, there is one implicit assumption about it, and that is that we can produce values of such a type with a call to <code>random</code>. Values that can be produced by <code>random</code> and similar function are of types that are instances of the <code>Random</code> class (capitalised). There are default implementations for <code>Int</code>, <code>Char</code>, <code>Integer</code>, <code>Bool</code>, <code>Double</code> and <code>Float</code>, so you can immediately generate any of those. Since we noticed already that the <code>GeneratorState</code> is "agnostic" in regard to the type of the pseudo-random value it produces, we can write down a similarly "agnostic" function, analogous to <code>rollDie</code>, that provides a pseudo-random value of unspecified type (as long as it is an instance of <code>Random</code>): <source lang="haskell"> getRandom :: Random a => GeneratorState a getRandom = do generator <- get let (value, newGenerator) = random generator put newGenerator return value </source> Compared to <code>rollDie</code>, this function does not specify the <code>Int</code> type in its signature and uses <code>random</code> instead of <code>randomR</code>; otherwise, it is just the same. What is notable is that <code>getRandom</code> can be used for any instance of <code>Random</code>: > evalState getRandom (mkStdGen 0) :: Bool True > evalState getRandom (mkStdGen 0) :: Char '\64685' > evalState getRandom (mkStdGen 0) :: Double 0.9872770354820595 > evalState getRandom (mkStdGen 0) :: Integer 2092838931 Indeed, it becomes quite easy to conjure all these at once: <source lang="haskell"> allTypes :: GeneratorState (Int, Float, Char, Integer, Double, Bool, Int) allTypes = liftM (,,,,,,) getRandom `ap` getRandom `ap` getRandom `ap` getRandom `ap` getRandom `ap` getRandom `ap` getRandom </source> Here we are forced to used the <code>ap</code> function, defined in <code>Control.Monad</code>, since there exists no <code>liftM7</code>. As you can see, its effect is to concatenate multiple monads into a lifting operation of the 7-element-tuple operator, <code>(,,,,,,)</code>. To understand what <code>ap</code> does, look at its signature: >:type ap ap :: (Monad m) => m (a -> b) -> m a -> m b remember then that type <code>a</code> in Haskell can be a function as well as a value, and compare to: >:type liftM (,,,,,,) getRandom liftM (,,,,,) getRandom :: (Random a1) => State StdGen (b -> c -> d -> e -> f -> (a1, b, c, d, e, f)) The monad <code>m</code> is obviously <code>State StdGen</code> (which we "nicknamed" <code>GeneratorState</code>), while <code>ap</code>'s first argument is function <code>b -> c -> d -> e -> f -> (a1, b, c, d, e, f)</code>. Applying <code>ap</code> over and over (in this case 6 times), we finally get to the point where <code>b</code> is an actual value (in our case, a 7-element tuple), not another function. So much for understanding the implementation. Function <code>allTypes</code> provides pseudo-random values for all default instances of <code>Random</code>; an additional <code>Int</code> is inserted at the end to prove that the generator is not the same, as the two <code>Int</code>s will be different. > evalState allTypes (mkStdGen 0) (2092838931,9.953678e-4,'\825586',-868192881,0.4188001483955421,False,316817438) {{Exercises|1= #If you are not convinced that <code>State</code> is worth using, try to implement a function equivalent to <code>evalState allTypes</code> without making use of monads, i.e. with an approach similar to <code>clumsyRollDice</code> above.}} = AM source text = == The State monad == The State monad actually makes a lot more sense when viewed as a computation, rather than a container. Computations in State represents computations that ''depend on and modify some internal state''. For example, say you were writing a program to model the [[w:Three body problem#Three-body problem|three body problem]]. The internal state would be the positions, masses and velocities of all three bodies. Then a function, to, say, get the acceleration of a specific body would need to reference this state as part of its calculations. The other important aspect of computations in State is that they can modify the internal state. Again, in the three-body problem, you could write a function that, given an acceleration for a specific body, updates its position. The State monad is quite different from the Maybe and the list monads, in that it doesn't represent the ''result'' of a computation, but rather a certain property of the computation itself. What we do is model computations that depend on some internal state as functions which take a state parameter. For example, if you had a function <code>f :: String -> Int -> Bool</code>, and we want to modify it to make it depend on some internal state of type <code>s</code>, then the function becomes <code>f :: String -> Int -> s -> Bool</code>. To allow the function to change the internal state, the function returns a pair of (return value, new state). So our function becomes <code>f :: String -> Int -> s -> (Bool, s)</code> It should be clear that this method is a bit cumbersome. However, the types aren't the worst of it: what would happen if we wanted to run two stateful computations, call them <code>f</code> and <code>g</code>, one after another, passing the result of <code>f</code> into <code>g</code>? The second would need to be passed the new state from running the first computation, so we end up 'threading the state': fThenG :: (s -> (a, s)) -> (a -> s -> (b, s)) -> s -> (b, s) fThenG f g s = let (v, s' ) = f s -- run f with our initial state s. (v', s<nowiki>''</nowiki>) = g v s' -- run g with the new state s' and the result of f, v. in (v', s<nowiki>''</nowiki>) -- return the latest state and the result of g All this 'plumbing' can be nicely hidden by using the State monad. The type constructor <code>State</code> takes two type parameters: the type of its environment (internal state), and the type of its output. (Even though the new state comes ''last'' in the result pair, the state type must come ''first'' in the type parameters, since the 'real' monad is bound to some particular type of state but lets the result type vary.) So <code>State s a</code> indicates a stateful computation which depends on, and can modify, some internal state of type <code>s</code>, and has a result of type <code>a</code>. How is it defined? Well, simply as a function that takes some state and returns a pair of (value, new state): newtype State s a = State (s -> (a, s)) The above example of <code>fThenG</code> is, in fact, the definition of <code>>>=</code> for the State monad, which you probably remember from the first monads chapter. === The meaning of return === We mentioned earlier that <code>return x</code> was the computation that 'did nothing' and just returned <code>x</code>. This idea only really starts to take on any meaning in monads with side-effects, like State. That is, computations in State have the opportunity to change the outcome of later computations by modifying the internal state. It's a similar situation with IO (because, of course, IO is just a special case of State). <code>return x</code> doesn't do this. A computation produced by <code>return</code> generally won't have any side-effects. The monad law <code>return x >>= f == f x</code> basically guarantees this, for most uses of the term 'side-effect'. == Further reading == * [http://members.chello.nl/hjgtuyl/tourdemonad.html A tour of the Haskell Monad functions] by Henk-Jan van Tuyl * [http://www.haskell.org/haskellwiki/All_About_Monads All about monads] by Jeff Newbern explains well the concept of monads as computations, using good examples. It also has a section outlining all the major monads, explains each one in terms of this computational view, and gives a full example. * [http://spbhug.folding-maps.org/wiki/MonadsEn Monads] by Eugene Kirpichov attempts to give a broader and more intuitive understanding of monads by giving non-trivial examples of them gp8umr0mgvsprni6nwawddp3k40iqpy Aros/Platforms/Arm Raspberry Pi support 0 286123 4668271 4668222 2026-09-03T13:13:07Z Jeff1138 301139 4668271 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boot with USB3 sata3 maybe possible in the future on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press Save button [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio no rt isochronous on usb2 usb2otg for pi3b and zero 2w not supported at the moment but working usb3 port on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 2rrzpiug3u90veggp1ix7zom3k5dn3w 4668272 4668271 2026-09-03T13:14:45Z Jeff1138 301139 4668272 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boot with USB3 sata3 maybe possible in the future on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press Save button [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio no rt isochronous on usb2 usb2otg for pi3b and zero 2w not supported but working on usb3 port on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 68zs92uj3zh5g2aycgjgs2zh70gcskt 4668274 4668272 2026-09-03T13:15:48Z Jeff1138 301139 4668274 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boot with USB3 sata3 maybe possible in the future on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio no rt isochronous on usb2 usb2otg for pi3b and zero 2w not supported but working on usb3 port on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} dpqvq7p1k0xvf6j7b73j8p1yvh1pub0 4668279 4668274 2026-09-03T13:21:02Z Jeff1138 301139 4668279 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 5 seconds auto shutdown - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boot with USB3 sata3 maybe possible in the future on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio no rt isochronous on usb2 usb2otg for pi3b and zero 2w not supported but working on usb3 port on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 7tj1ej87gt8bg1f0gka7yhc19uhmhwg 4668310 4668279 2026-09-03T13:48:07Z Jeff1138 301139 4668310 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 5 seconds auto shutdown - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boot with USB3 sata3 maybe possible in the future on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 2njq4w9punaiq6n9t9rirkxp1e2ev3u 4668335 4668310 2026-09-03T14:11:54Z Jeff1138 301139 4668335 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 5 seconds auto shutdown - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with USB3 sata3 ssd on Pi400 but untested on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} mf1uew209554vkr0yxsv69j353cv8qv 4668365 4668335 2026-09-03T14:53:58Z Jeff1138 301139 4668365 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 5 seconds auto shutdown - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} rsty9p08rt5rhmcxm8yz1ks1mda005g 4668367 4668365 2026-09-03T14:56:26Z Jeff1138 301139 4668367 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} aogffeq4p3gzjcpvcxy3j7w54z76wze 4668370 4668367 2026-09-03T14:58:24Z Jeff1138 301139 4668370 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} ozkrkjcob8hlqic5wt7gql73l3aayun 4668413 4668370 2026-09-03T16:02:28Z Jeff1138 301139 4668413 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} hphnrg880hnixz135vluvs371pipsgn 4668414 4668413 2026-09-03T16:15:00Z Jeff1138 301139 4668414 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.youtube.com/watch?v=EtI_bAahbR8 uConsole Cyberdeck ClockworkPi CM4S ddr2 so-dimm] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} oy6sk4vyd3vmjoiozxr2e0j9noolk1i 4668415 4668414 2026-09-03T16:19:07Z Jeff1138 301139 4668415 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.youtube.com/watch?v=EtI_bAahbR8 uConsole Cyberdeck ClockworkPi CM4 into an adapter so-dimm-ish] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} mdsqc15e9z2ti5v8zsx10cg6lyc1igo 4668416 4668415 2026-09-03T16:21:41Z Jeff1138 301139 4668416 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.youtube.com/watch?v=EtI_bAahbR8 uConsole Clockwork Pi CM4 into an adapter simm socket - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 795lva3uz67v709gj73ss715jub7949 4668417 4668416 2026-09-03T16:30:00Z Jeff1138 301139 4668417 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 ddr2 simm socket - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} m11lstln7mz251sdg1sm66jotvsbnq6 4668419 4668417 2026-09-03T16:33:09Z Jeff1138 301139 4668419 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} my79b2mpm7uh4a609sfd9rdvkduzil5 4668421 4668419 2026-09-03T16:34:50Z Jeff1138 301139 4668421 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} g2ehe63ey091v36b4l199qbqqcjdsa5 4668424 4668421 2026-09-03T16:39:12Z Jeff1138 301139 4668424 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - network untested - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} q2ux6y7o3c5pur281fm0zd7oqgh8mi5 4668513 4668424 2026-09-04T07:43:59Z Jeff1138 301139 4668513 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi untested but lan ethernet settings still not saving 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 0a2tcmr4ku0vkxs4spm2yuxuefvux0l 4668515 4668513 2026-09-04T07:55:36Z Jeff1138 301139 4668515 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0: and IPv4. Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} a6c9u0tqhmcy4p77jw47tl2ny92sbuv 4668516 4668515 2026-09-04T08:01:56Z Jeff1138 301139 4668516 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} qqjjw95l7g0mpqbcuzj8z5wnqv1vpn5 4668517 4668516 2026-09-04T08:02:54Z Jeff1138 301139 4668517 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 type into Device .device - under construction In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} q3qm9wy0xo6gntitt3a8xy9a67bquxu 4668518 4668517 2026-09-04T08:04:06Z Jeff1138 301139 4668518 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 8c3acdb4m74lto9t3qxvv2c7gn4cw3i 4668519 4668518 2026-09-04T08:06:42Z Jeff1138 301139 4668519 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 712hec56p0014a9j35vw5l1o85xy727 4668520 4668519 2026-09-04T08:09:13Z Jeff1138 301139 4668520 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} f8a6f1ls8c8e8tco5pu76pwf1v9ht7b 4668521 4668520 2026-09-04T08:22:33Z Jeff1138 301139 4668521 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge - Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Portable [ Waveshare PocketTerm35] with Pi5 - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 8ytd1gqe4s33gz4z060glow5i4uxq22 4668522 4668521 2026-09-04T08:24:21Z Jeff1138 301139 4668522 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge - Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} 3f7w3kv8iarpv77fk8d815pqxwltfal 4668523 4668522 2026-09-04T08:29:07Z Jeff1138 301139 4668523 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge - Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *[ Zitaotech Hackberry] CM5 lite only - *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} ftt1meorr88v6ro0xnv9cwch0yvqad1 4668525 4668523 2026-09-04T09:05:54Z Jeff1138 301139 4668525 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge - Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *[https://carboncomputers.us/products/pi-flux piFlux] *[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only - *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} qrrkmur04gb1fnwbxo39ed597npjuzr 4668527 4668525 2026-09-04T09:08:28Z Jeff1138 301139 4668527 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge - Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *[https://carboncomputers.us/products/pi-flux piFlux] *[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only - *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} rwgjzz1sqp7ngyi8wnm6b4nukg36tg6 4668528 4668527 2026-09-04T09:11:02Z Jeff1138 301139 4668528 wikitext text/x-wiki {{ArosNav}} [[#Native]] [[#Hosted]] [[#Build]] [[#Hardware]] [[#References]] ==Introduction== [[File:Scalos00.png|thumb|Scalos on Aros Pi3b]] Aros aims to cover Pi 3 to 5 1Gb+ RAM ideally as you may have to switch to 256Mb gfx mode depending on the application running - it is still a work in progress Options to boot from using a good power source to prevent the yellow lightning symbol. Testing procedure is put sd card in, connect board to board if necessary, plug in hdmi and then power nothing else is done especially CSI DSI etc *Up to Pi3b+ the max you can get is 5.1V 2.5A with micro usb. *With Pi4 5.1V 3A with usb-c *With Pi5 5.1V 5A, the amps went ever upwards, even to 5.1V 9A with usb-c Pi500+ keyboard wedge - Pi400 RPI-400 keyboard wedge - resolution changing and audio from micro hdmi0 (near 40pin) and micro hdmi1 (near usb-c psu) - Fn F10 0x5e power on and off works or held down for over 7 seconds auto shutdown - keyboard ok but not great - wifi and lan ethernet partial working but settings still not complete after reboot 02-09-2026 - * Pi 5 - Quad A76 64bit ARMv8 and RP1 "southbridge" with VideoCore 7 Pre-D0 (Rev1.0) or D0 (rev1.1) * Pi 4 - Quad A72 64bit ARMv8 with VideoCore 6 * Pi 3 - Quad A53 [https://www.raspberrypi.com/documentation/computers/processors.html 64 bit] ARMv8 with VideoCore 4 with heatsinks on 3b to prevent cpu 80C+ overheating * Pi 2 - Quad 32bit ARMv6 with VideoCore 4 - mostly not 64bit compatible * Pi Model B+ 32bit ARMv6 with VideoCore 4 - not 64bit compatible * Pi Model A and B 32bit ARMv6 with VideoCore 4 - not 64bit compatible ===Native=== * 2013-03 Kalamatee starts work * 2015-04 Work continues with mschulz on the kernel and Kalamatee (NicJA) on gpio and usb * 2018 [https://www.patreon.com/posts/i-owe-you-some-20956961 mschulz resume adding BE big endian support], [https://www.patreon.com/michal_schulz/posts Big endian on Pi] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bsek latest commits for pi 3b, 4 64bit] * 2026 [https://github.com/aros-development-team/AROS/commits?author=metaneutrons latest commits for Pi5] * 2026 [https://github.com/aros-development-team/AROS/commits?author=bitplane latest commits for ARM] '''Download''' [https://aros.sourceforge.io/nightly1.html RaspberryPi 3, 3+, 4 and 5 64bit ArmV8 builds] [https://sourceforge.net/projects/aros/files/ Alternative site and nightly2] both raspi-aarch64-system and raspi-aarch64-contrib can be unbz2'd and copied to fat32 8GB+ microSD card (there will be folders - boot c Classes Demos Developer Devs Extras etc only showing). The SD can be plugged in to the Pi 64bit build works well on a single core LE little endian. Multicore [https://github.com/aros-development-team/AROS/commit/1df0747c2bda3523a43029725a709b1f377d84ec may follow]. Any issues booting could be down to the SD card so please use another SD to see if it is resolved. Please report your experiences in the [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=60&pid=13363#post_13363 Aros Raspberry pi 3 64bit thread] Boots with '''USB3''' based sata3 ssd on Pi400 but untested on Pi4 (may need eeprom update from PiOS or Pi SD Imager) and Pi5 Like most amiga like OSs the audio and networking need to be setup manually Audio AHI prefs - Mode settings tab - needs both Music unit and Unit 0 set to RPiHDMI:16 bit stereo++ or RPiPWM:16 bit stereo++ at 44100Hz. Press '''Save or Use''' button after each choice Double left mouse click on most picture (Developer/Debug/Tests/Datatypes), audio and video files are supported, via datatypes, by the multiview application. Esc escape key usually closes open windows even the desktop Windows can be manipulated by the top (moving) and the bottom right corner (resizing) only. In Prefs/Appearance some decorative theming elements need work. There is a few Mason icons in /Prefs/Presets/Icons/Mason/ and the ever present default Gorilla - Icon Prefs needed? Printing only with Postscript but [https://github.com/bohunamiga/MintPRINT one] of [https://github.com/boingball/MintPRINT two] [https://github.com/Andiweli/AmiAirPrint/tree/main AirPrint] IPP has been attempted with [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2061&pid=13954#post_13954 discussion] For more intensive graphics applications, you may need to edit config.txt in the root folder and change 128M to 256M to adjust more memory to graphics usage, Aros on these SBCs will only cope with light everyday tasks. [[File:Wifi00.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi01.png|thumb|Setup wifi on Aros Pi3b]] [[File:Wifi02.png|thumb|Setup wifi on Aros Pi3b]] Wifi setup needs the network prefs with the TCP/IP tab click add interface -> change Device to bwfm.device as net0:, IP Mode as DHCP and IPv4 Once you’ve configured the device, simply save the Wireless Networks tab Wi-Fi configuration even if it’s empty. This will create the Wireless.prefs file in the Env-Archive/SYS directory, and you’ll automatically see the Wireless Manager icon in Wanderer. Although a reboot maybe necessary. Wireless tab gets your router settings. If it does not set to start at boot, settings are preserved. Instead, add this to the user-startup: <pre> execute sys:system/network/arostcp/s/startnet run wirelessmanager device=bwfm.device >nil: </pre> Network will start automatically on boot. If you don't want the wirelessmanager icon on Wanderer desktop, just add 'nogui' to the wirelessmanager line Lan ethernet port on the Pi3b+ is supported but not on any other Pi so far *lan9514 Pi3b Pi2 *lan7515 Pi3b+ type into Device usblan78xx.device as net0: remove other device(s) *bcmgenet Pi4 Pi400 choose for Device bcmgenet.device There is normally no Bluetooth support for most amiga like OSs but Aros has one [https://github.com/aros-development-team/AROS/commit/6942cbfbf66426d21963a7fcd8aba6aff611a9e0 work in progress] [https://forums.raspberrypi.com/viewtopic.php?t=338466 firmware] with an hid keyboard and mouse driver *Bluetooth 4.1 BCM43430A1.hcd Pi3B, Pi3A, Zero W *Bluetooth 4.2 BCM4345C0.hcd Pi3B+, Pi4 *Bluetooth 5.0 BCM4345C5.hcd Pi4B rev, CM4 and maybe Pi5 and CM5 Only the Pi5 has a RTC real time clock, the other Pis will need to use [https://aminet.net/package/util/time/NTPSync ntpsync] or similar to get the date and time from the internet USB classes support from Prefs/Trident is still work in process *usbaudio not working as no rt isochronous on usb2otg (white or black) for pi3b and zero 2w but '''working''' on usb3 port (blue) on pi4, 400 *camdusbmidi no class compiled but eventually 64bit ports of [https://aminet.net/package/mus/midi/camdtools camdtools], [https://github.com/timoinutilis/midi-sequencer-amigaos horny src], [https://aminet.net/package/mus/midi/horny-base horny-base], [http://bnp.hansfaust.de/index.html BnP], Regarding 680x0 emulation, there are several options that could be considered *[https://github.com/aros-development-team/AROS/blob/6722a0ae9e03fe5d26e32703360bd2059e0864cc/rom/m68kemu/README.md?plain=1#L424 m68kemu.library] for some Amiga productivity where the cpu is emulated and the system calls are redirected to Aros ones *[https://github.com/BlitterStudio/amiberry amiberry] (winuae) for everything else like games *[https://github.com/jonx/AROS/tree/aarch64-darwin-graft/arch/all-darwin/libs/emu68k emu68k] Youtube [https://www.youtube.com/watch?v=X4fmWAIv7FE Aros native on Pi3b], [], [], [https://www.youtube.com/watch?v=TSxlYb1eQWU Installed on Pi3b+], [], [], [https://www.youtube.com/watch?v=NFF1H3jCoz8 testing Aros native on Pi400], [], [], [https://www.youtube.com/watch?v=nIVx7mh1E1Q&pp=ygUHYXJvcyBwadIHCQkTDAGHKiGM7w%3D%3D Aros on Thumb 2 based 32bit-ish ARM STM32H743 board], [], [], [https://gpiozero.readthedocs.io/en/stable/installing.html Current] [https://gpiozero.readthedocs.io/en/v1.2.0/api_boards.html old support for gpiozero is unknown at present] [https://energenie4u.co.uk/res/pdfs/ENER314%20UM.pdf and associated 433MHz equipment] [ USA X10 security and lights via USB] [ OpenHab with Shelly Smart Plug connected over Wi-Fi, controlled by MQTT or HTTP] The status of AROS native ARMv6 for 32bit RasPi was OK. System booting, USB working (although with some issues but plans to fix them). 32bit native [http://www.aros.org/nightly1.html ARMv6 32bit nightlys] raspi-armhf-system raspi-armhf-contrib unbz2'd to fat32 microSD ===Hosted=== AArch64 CPU backend for AROS, a Cocoa/Metal display, clipboard / host-volume / CoreAudio / BSD-sockets bridges, GPU 2D via gpufx.library, a 68k→AArch64 JIT (run68k), and a full Rust std port. On [https://www.jkn.me/blog/macaros-aros-on-apple-silicon/ latest Apple Silicon] [https://github.com/jonx/Macaros early buggy alpha version of hosted Aros .dmg on MacOS12+]. Please use MACAros github for discussion, features etc and possibly [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2030&pid=13910#post_13910 here] [http://www.aros.org/snapshots1.html old linux and android hosted 32bit] ===Good sites to visit=== *[https://github.com/raspberrypi/firmware/tree/master/ Raspberry Pi Firmware build] *[https://www.raspberrypi.com/documentation/computers/software-sources.html Documentation] *[https://rpilocator.com/ RPiLocator] Linux only *[https://github.com/raspberrypi/linux Raspberry Pi Linux Build] *[https://www.raspberrypi.com/software/operating-systems/ PiOS Lite] and then [https://hstwb.firstrealize.com/ HST] *[https://dietpi.com/ DietPi] *[http://www.tinycorelinux.net/ports.html piCore] *[https://wiki.alpinelinux.org/wiki/Raspberry_Pi Alpine Linux] *[https://github.com/armbian/build Armbian] *[ PiMiga] *[ FydeOS] *[ TwisterOS based on ChromiumOS] *[https://note.com/jamesmondo/n/nc76e31402be8?hl=en BSD] Other alternative lighter smaller than Pi OS *[https://aros.sourceforge.io/nightly1.html Aros 64bit ARMV8 single core] *[https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi RiscOS on Pi3 and Pi4] *[https://github.com/michalsc/Emu68 ARM based realtime JIT 68k for amiga computers] *[https://github.com/JJDSNT/bellatrix/releases/ Alternative use of Emu68 on Pi3b] *[https://github.com/stevereaver/uaos uaOS with Emu68k] *[https://github.com/aros-development-team/AROS/commit/f80a268607dfae81b2db94755ab4e4d31ccb72d6 m68kemu library reference] *[ HaikuOS] *[https://github.com/raspberrypi/noobs NOOBS] os loader with successor [https://github.com/procount/pinn PINN] *[https://github.com/maxnet/berryboot berryboot] *[https://github.com/brianwiddas/pi-baremetal Bare Metal Access on Pi 32bit] [https://pinout.xyz/ GPIO 40 pins] [https://learn.sparkfun.com/tutorials/raspberry-gpio/gpio-pinout pinout] Some exceptions: *Physical pins 27, 28 (GPIO0, 1) are an internal I2C bus and should not be used *The other I2C on pins 3, 5 (GPIO 2, 3) can be used generally, but be aware they have permanent pull-up resistors to 3.3V *For MIDI use USB but there are dedicated UART pins 8, 10 (GPIO 14, 15). With a HAT it's more awkward -- you need to know which pins are used by the HAT and avoid them. Hopefully this will be documented. Remember all GPIOs are 3.3V (not 5V tolerant), floating/noisy inputs can cause odd behaviour, and that shorting the power supplies can cause instant death of the Pi. In the shell GPIO PIN/A/N,SET/N,GET/S,MODE/K,PULL/K Controls and queries hardware GPIO pins via gpio.resource which is stored in the rom or Devs/ - work in process *PIN -- (Required) Target GPIO pin number (e.g. 12). *SET -- Set pin output value to 0 (LOW) or 1 (HIGH). *GET -- Read and print current digital input level (0 or 1). *MODE -- Configure pin mode: IN (Input), OUT (Output), ALT (Alternate). *PULL -- Configure pull resistor: NONE, UP, DOWN. EXAMPLES <pre> GPIO 12 MODE OUT GPIO 12 SET 1 GPIO 12 GET GPIO 13 PULL UP </pre> ==== Hosted ==== =====64bit===== [https://www.arosworld.org/infusions/forum/viewthread.php?thread_id=2019&rowstart=80&pid=13667#post_13667 Linux hosted Pi build] [https://github.com/BlitterStudio/aros-compiler-docker Aros Docker for various systems], [https://github.com/aros-development-team/AROS/commit/d84b9a337f9aa059154d9af69275935125166bdd Apple Silicon support] =====32bit===== Ubuntu VM approach to compiling [http://lallafa.de/blog/2013/06/building-aros-hosted-for-raspbian/ Linux hosted AROS June 04, 2013] ../AROS/configure --target=linux-armhf --enable-includes=/usr/arm-linux-gnueabihf/include --x-includes=/usr/arm-linux-gnueabihf/include --x-libraries=/usr/arm-linux-gnueabihf/lib arm-elf- is symbol-linked to arm-linux-gnueabi- (arm-linux-gnueabi- is more correct in this case, because it's going to be compiling the ARM AROSBootstrap for ARM Linux) *armel - many of the "android" machines require since the entire OS is made for soft float VFP. *armfp - Efika MX target, Raspberry PI, EfikaMX, Pandora and virtually everything (VFP) Keep in mind it's possible to start hardfp AROS hosted on softfp system, though, as long as no calls between AROS and host require floating point parameters. NOTE: hardfloat objects *cannot* be linked with softfloat objects - they have a different ABI. Just keep in mind the arm nightly build machine is quite complex beast. It needs the x86_64 host compiler to compile AROS tools. The arm version is built every night using gcc-4.6.2 crosscompiler (built together with AROS) and successfully builds armel and armhf linux hosted targets. *needs an AROS code compiler for ARM target *as well as unix compiler for ARM linux host (would be best to have both softfp and armhf, we have softfp only now) with full set of libraries and includes. with—disable-crosstools $AROS_CC is always a wrapper around $KERNEL_CC ? If so, this is wrong for some ports. This can break Darwin, Windows and Android port. Yes, Android port will build. And even work. But it's not good because the port will not be ABI-compatible with other ARM ports. Android's ABI is different from GNUEABI. For example: <pre> enum test {foo, bar}; enum test testvar; </pre> sizeof(testvar) will be equal to sizeof(int) in GNUEABI (Linux and AROS) and sizeof(short) on Android. This affects linking objects from static linklibs, for example. Previously everything worked because $AROS_CC was a wrapper on top of $HOST_CC. And a real crosscompiler was used on non-ELF hosts. Android is the same. $KERNEL_CC is incompatible with AROS. compiler=kernel is appropriate _ONLY FOR CODE WHICH RUNS ON HOST OS_ (or barebone hardware, if we talk about native). This includes bootstraps, their linklibs, and host-side dynamic libraries (Windows makes extensive use of them because of architectural considerations. No single AROS object should be compiled with this setting. $KERNEL_CC is really compatible with AROS *ONLY IN LINUX-HOSTED* and no more. On other systems (Darwin, Windows, Android) this is not true any more, and compiler=kernel is never going to work. If you want to compile your AROS module against host OS includes, append the following to USER_INCLUDES (or USER_CFLAGS, this is effectively the same): -isystem $(GENINCDIR) $(KERNEL_INCLUDES) $(KERNEL_INCLUDES) expands to: -isystem <your_os_includes> -isystem <host_OS_gcc_private_includes> -nostdinc This makes AROS compiler adhering to host OS APIs. If you want some preprocessor symbols based on what your host OS actually is, add something like -DHOST_OS_$(AROS_HOST_ARCH). Why is there $(GENINCDIR) at all? Because host OS has its own libc includes, which would conflict with AROS ones. And the host OS libc is not binary-compatible with AROS one. Why doesn't Windows-hosted port use $(KERNEL_INCLUDES) ? Because WinAPI includes conflict with AROS ones in fundamental typedefs, like WORD, BYTE and BOOL. It's almost impossible to deal with this in any other way than rewriting WinAPI definitions using AROS types. Building under centos 6.3 (i386) currently, and AROS creates the toolchain itself. haven't yet committed the necessary changes but "./configure --target=raspi-armhf" is enough to start, then "make arosboot-raspi" will generate arosraspi.img (containing the bootstrap, kernel.resource, and exec.library) as well as arosraspi.rom (containing all the other essentials components such as dos, graphics etc). It will also copy over a config.txt file to make the raspi bootstrap code load the correct kernel, and a cmdline.txt that enables exec debug output. *armel = typically Debian 6, Ubuntu Maverick, Android, *armhf = typically Debian 7, Debian 8, Ubuntu Precise, Cross-compiling Ubuntu ARM softfp <pre> sudo sh echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list apt-get update apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel </pre> <pre> ./configure --target=linux-arm --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabi/include </pre> Cross-compiling Ubuntu ARM hard-float <pre> sudo sh echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list apt-get update apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf </pre> <pre> ./configure --target=linux-armhf --x-includes=/usr/include \ --enable-includes=/usr/arm-linux-gnueabihf/include </pre> Now, the AROS build is configured properly and all you need to do is: make ==Build== ===64bit=== ===32bit=== # download/checkout the source someplace, e.g. /build/AROS-Src/ # make a directory to store external sources AROS downloads, e.g. /build/Ports # make a build directory, e.g. /build/aros-raspi-armhf # cd into the build dir, configure, and then run make -: <pre> >cd /build/aros-raspi-armhf >/build/AROS-Src/configure --target=raspberrypi-armhf --with-serial-debug --enable-ccache --with-portssources=/build/Ports >make >make arosboot-raspi </pre> then copy the files from /build/aros-raspi-armhf/bin/raspi-armhf/AROS/ onto an sdcard, and download/copy the Raspi firmware files onto it. You should then be able to boot the sdcard on your RasPi. The current W.I.P tree to svn. it can be built as follows .. <pre> ./configure --target=raspi-armhf make arosboot-raspi </pre> That will generate arosraspi.img, arosraspi.rom and config.txt in bin/raspi-arm/AROS - so either copy just those files to a fat formatted SD card (with the firmware files on), or copy the whole contents of the AROS folder. NB - if you have a Linux/other install, backup the existing config.txt first arosraspi.img contains the bootstrap (which has very basic mailbox code, framebuffer/gpio init, and console "emulation" via code pinched from our libbootconsole), kernel.resource, and exec.library arosraspi.rom contains all the other components needed to boot AROS. The config.txt file will tell the RasPI bootstrap to load the arosraspi kernel and ramdisk (rom). the bootstrap has minimal mailbox code, planning on adding either a resource or library that driver/app code will use to access it (likewise for GPIO) Help building AROS hosted on Linux ARM Was looking a way to use more my Handheld ARM based called Pyra (Dragonbox Pyra) an ARM (Omap5 cpu with 4GB ram) linux based machine (Debian Buster v10 with kernel 5.6.19 adapted) and have a try to compile the latest Aros sources by Deadwood directly on this device. Compilation stops after build libpopupmenu.a and trying to build libatomic have this error: <pre> Configuring build in bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic configure: WARNING: unrecognized options: --disable-nls, --without-x checking for --enable-version-specific-runtime-libs... no checking for --enable-generated-files-in-srcdir... no checking build system type... arm-unknown-linux-gnu checking host system type... arm-unknown-aros checking target system type... arm-unknown-aros checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for arm-aros-strip... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for arm-aros-gcc... /media/farox/pyra2/arosbuilds/toolchain-core-armhf/arm-aros-gcc checking whether the C compiler works... no configure: error: in /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic': configure: error: C compiler cannot create executables See config.log' for more details make[2]: *** [mmakefile:4489: /media/farox/pyra2/arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic/.configured] Error 77 [MMAKE] make --no-print-directory TOP=/media/farox/pyra2/arosbuilds/toolchain-core-armhf-build SRCDIR=/media/farox/pyra2/arosbuilds/AROS CURDIR=tools/crosstools/gnu TARGET=tools-crosstools-gcc-libatomic-configure -s --file=mmakefile tools-crosstools-gcc-libatomic-configure failed: 512 [MMAKE] Error: Error while running make in tools/crosstools/gnu: No such file or directory make[1]: *** [Makefile:361: linklibs-libatomic] Error 10 make: *** [Makefile:183: crosstools] Error 2 </pre> looking at config.log on arosbuilds/toolchain-core-armhf-build/bin/linux-arm/gen/host/tools/crosstools/gnu/gcc/arm-aros/libatomic found that arosbuilds/toolchain-core-armhf/arm-aros-ld: cannot find -laeabi so do make linklibs-aeabi-arm-quick and the missing lib was built. now the next stop is at fatal error: bits/libc-header-start.h: No such file or directory and fatal error: sys/cdefs.h: No such file or directory in many places so after checking that have this missing include files i have noted that my include path is a bit different, standard searching path is /usr/arm-linux-gnueabihf but in my system is /usr/include/arm-linux-gnueabihf so if i add my path to some mmakefiles compilation goes on....but is a better way to add this path to avoid every mmakefiles to be changed? fixed with adding -I/usr/include/arm-linux-gnueabihf to where is missing on mmakefiles like USER_INCLUDES := -isystem $(GENINCDIR) -I/usr/include/arm-linux-gnueabihf $(KERNEL_INCLUDES) P.s. I have changed many mmakefiles and have at least compiled (after many hours) the toolchain doing make every time in arosbuilds/toolchain-core-armhf-build (also have to disable making tests under cplusplus but don't remember the directory ...) but ask an help to have an automated way to correctly build without modify mmakefiles. Last time built armhf target was around 2 years ago. At that point built is via cross-compilation from linux (ubuntu 22.04) using linux armhf crosscompiler (this can explain the path differences you are experiencing) as well as using AROS gcc cross-compiler in version 6.5.0 (build with option 21) in rebuild.sh). Since then AROS GCC has been updated to 10.5.0 and don't believe anyone tried to build the armhf target again. My suggestion would be to downgrade GCC to 6.5.0 (via editing AROS/config/gcc_def file) and try to first build using cross-compilation from x86_64 linux. Once that works, you will have a "template" to compare to native compilation under arm linux. Thanks for your suggestion...but think the toolchain with GCC 10.5.0 is compilable if i found a way to pass the path of my system to the script that build (option 21 on rebuild). The other only changes are (but don't know where to modify...) is to add the build of libaeabi and disable the building of some tests under cplusplus that use exceptions and is not supported under ARM. try to crosscompile with my Linux amd64 PC. For paths look into core-linux-armhf/bin/linux-armhf/gen/config/target.cfg. A number of build-wide variable is set there containing paths to local build system. These variables and the target.cfg file are generated by AROS ./configure script. Thanks compilation now go forward...changed target.cfg under "toolchain-core-armhf-build/bin/linux-arm/gen/config" and do make on "toolchain-core-armhf-build" dir. Need to find where to enable build libaeabi.a so can build the entire toolchain with option 21 of rebuild.sh Found something that looks like libeabi in AROS/arm-all/arm-aeabi/mmakefile.src. Try adding a third line there: #MM- linklibs-armhd : libklibs-aeabi-arm Don't remember needing this library. Possibly the 6.5.0 GCC somehow does this while 10.5.0 is missing this. Try adding this line (and the variant "linklibs-armhf" instead of hd) but it did not solve the automatic building of the missing lib. I must do "linklibs-aeabi-arm-quick". Anyway after have build the aeabi lib i succefully built the toolchain (after many hours...). Smile To test I restarted from selecting option 21 (on rebuild.sh) but after many hours i get the same error of the kernel includes not found...maybe i need to modify the configure script for my case. With the toolchain built i try to build the core-linux-armhf (DEBUG) (option 22) but after a while it stopped with "cannot find -laeabi " so i made it built manually...and now i can continue compiling...i'll let you know if all goes ok. == Hardware == ===64bit=== ====BCM2712==== With the Pi5 Broadcom VideoCore 7 vc7 is an integrated GPU with 12 cores and up to 800 MHz clock. VideoCore VII is capable of OpenGL ES 3.1 and Vulkan 1.2. The driver support for the Raspberry Pi continues to build upon the [https://lore.kernel.org/dri-devel/20230928114532.167854-1-itoral@igalia.com/ open-source V3D driver] stack within [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 Mesa] hopefully be merged for Mesa 23.3 *Raspberry Pi M.2 HAT+ Expansion Board *Geekworm X1001 PCIe to M.2 Key-M NVMe *Geekworm X1003 PCIe to M.2 HAT NVMe SSD PIP Board for Raspberry Pi 5 *Pineboards Pi Hut HatDrive! M.2 HAT 2024/V4 *Hat+ Gen2 Gen3 Nvme *GeeekPi 52Pi N04 for Raspberry Pi 5 NVME M.2 * *2024 RPI AI HAT - Hailo 20TOPs *2026 RPI AI HAT+ 2 - Hailo 40TOPs [https://www.raspberrypi.com/documentation/accessories/camera.html Cameras for Pi] *Raspberry Pi camera module, the V3 with Sony IMX708 back-illuminated CMOS 12 Megapixel sensor *Raspberry Pi Camera Module V2 – 8MP Sony IMX219 Sensor *Raspberry Pi camera Rev 1.3, 5MP 1080P OV5647 image/video module, 2592 x 1944 pixels ====BCM2711==== With the Pi4 an ARM a72 cpu is about x3 times the size of an a53 in the Pi3 the 2711b line used more power when idle, compared to the 2711c *2018 Raspberry Pi PoE-HAT Power Over Ethernet Hat *2020 Raspberry Pi PoE+HAT Power Over Ethernet Hat *[https://github.com/axizo-pi/V3DLib vc6 V3D 4.2] is derived from [https://docs.broadcom.com/doc/12358545 vc4], but it is significantly different The QPU pipeline stays mostly the same, you still have an add ALU and a multiply ALU and it can issue two ALU OPs per cycle. There is still 4 SIMD lanes, interleaved over 4 cycles. The instruction encoding for the QPUs is different, but the core instructions are the same. Instructions for packed 8 bit int math has been dropped, along with most of the pack modes. Instructions for packed 16bit float math has been added (2 floats at in a single operation) With vc5/vc6, you write two packed 16f value to the tilebuffer (or four writes of 32f, if you are using the rgba32f framebuffer). And there is a handy vfpack operation which allows you to pack two f32s into a single 32bit value in a single instruction. You can vfpack directly into the tile buffer register. the multiply ALU can now fadd, so you can issue two fadds per instruction. the add ALU has gained a bunch of new instructions the A and B register files have been merged. You still only get an A read and a B read per instruction, but they read from one big register file (which means the underlying memory block has gone from two sets of "one read port, one write port" to one "two read ports, one write port" block) The theoretical max FLOPs per QPU remains the same at two per cycle, other than the bump from 400mhz to 500mhx but it looks like a lot of effort has been put putting those theoretical FLOPs to better use. *vc4 could run one or two threads per QPU. When you ran in two thread mode, the available register file halfed to 32 registers. *vc5 added a four thread per QPU mode, with 16 registers per thread. *vc6 doubled the size of the register file. You could now use all 64 threads in two thread mode and 32 registers in for thread mode. Single thread mode was removed, you always have at least two threads. With the threading improvements, the QPUs should spent much less time idle waiting NOPs for memory requests. Most of the design changes have gone to improving the fixed function hardware around the QPUs. A fixed function blend unit has been added, which should reduce load on the QPUs when doing alpha blending. hope software blending is still possible The tile buffer can now store upto 4 render targets (up to 128bits per pixel, so if you are using 4 32bit render targets, you can't have a depth buffer) A MMU, allowing a much simpler/faster kernel driver. Many more texture formats, framebuffer formats. All the features needed for opengl es 3.0 H.265 / HEVC decoder is a HEVCv2 Main 4:4:4 10 design supporting bitstreams up to profile 5.1 HEVC hardware decode supports 4kp60, 10-bit. Audio output is pretty much unchanged, but the HDMI audio channels now support 8x192kHz bitrates Each ALU typically have 2 floating point operators, and as you pointed out in a earlier post videocore 6 is no exception, with both a multiply and additive floating point operator. Thus theoretical GFLOPs are calculated with both operators in mind. That is what the 2 in my formula represents, and is common across any modern programmable shader, whether you calculate Nvidia, AMD, Intel, Boardcom or any other company's GPUs. Total ALUs * 2 * GHz clock = GFLOPs, In the case of Raspberry Pi 3, it's 24 ALUs * 2 operators * 0.4GHz = 19.2GFLOPs If the Videocore 6 does indeed only have 16 ALUs (16 * 2 * 0.5GHz), you'd have only 16GFLOPs but they are better utilised Possible maximum performance <pre> VideoCore IV @ 250MHz: 250 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 24 Gflop/s VideoCore IV @ 300MHz: 300 [MHz] x 3 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 28.8 Gflop/s VideoCore VI @ 500MHz: 500 [MHz] x 2 [slice] x 4 [qpu/slice] x 4 [processor] x 2 [op/clock] = 32 Gflop/s </pre> Faster LPDDR4 memory. ====BCM2837==== With the Pi3 * Broadcom BCM43438 chip provides 2.4&nbsp;GHz 802.11n wireless LAN, Bluetooth Low Energy, and Bluetooth 4.1 Classic radio support, 3B+ [https://github.com/aros-development-team/AROS/commit/afa5bc0bb17d5dd06bcfdbac00853a3799ca8d76 LAN7515] The overclock ability has diminished with each chip version as the energy usage has increased. BCM2837 is one of the warmest yet and benefits from active fan cooling if all four cpu cores are in use for a short while. Video playback is not affected due to the custom support in the GPU. 5 V / 2.4 or 2.5 amp power supply recommended if all four cpu cores are running, else throttling (cpu slowdown) might occur. Dual VDP and scalable QPU in VC4 ARMv8-A has [https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels privilege levels] where userspace typically runs at ‘EL0’, the kernel at ‘EL1’ or ‘EL2’ and the firmware at the highest level ‘EL3’. ===32bit=== === Core Kernel === ====BCM2708(family)==== which includes the [http://elinux.org/RPi_Hardware BCM2835] (ARM1176JZF-S 700&nbsp;MHz CPU + VideoCore IV GPU + up to 1GB RAM) *Framebuffer (fb) using mailbox *IRQ scheduler, etc *Arasan based SD Card controller *Synopsis DesignWare USB 2.0 OTG controller [http://networkdirection.net/index.php?option=com_content&view=article&id=106:rasperry-pi-usb-controller&catid=45:raspberry-pi&Itemid=54 Unofficial DOCS pdf], [dwc_otg.c FreeBSD], [], [https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/HWSupport/USB/Controllers/DWCDriver/ RiscOS USB Driver], [https://www.riscosopen.org/forum/forums/5/topics/878 RiscOS USB Discussion], [https://www.riscosopen.org/forum/forums/11/topics/1893 Other USB RiscOS], [http://plan9.bell-labs.com/plan9/index.html Plan9 Miller's usb] http://plan9.bell-labs.com/sources/contrib/miller/, [https://github.com/Chadderz121/csud CSUD driver], *[http://www.smsc.com/media/Downloads_Public/Data_Sheets/9512.pdf SMSC 9512] USB LAN/Hub chip *CMOS RAM *VCHIQ port which sends messages to the GPU e.g. for mouse, keyboard, audio on HDMI, etc *Audio Driver *Serial Peripheral Interface Bus (SPI) *[http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/ I2C registers] *I2S *Universal Asynchronous Receiver Transmitter (UART) *[http://elinux.org/RPi_BCM2835_GPIOs GPIOs] and [http://www.adafruit.com/blog/2012/08/17/broadcom-bcm2835-peripheral-memory-map-and-gpio-alternate-use-chart-piday-raspberrypi-raspberry_pi/ Alternative view of GPIO] BCM2836 * For Pi B+, PI 2 and Pi 3 SMSC LAN9514 chip adding 10/100 Ethernet connectivity and four USB channels to the board *[http://www.andrewscheller.co.uk/rpi_pcb_modules.html PCB], [http://elinux.org/RPi_Low-level_peripherals Low level features], Implemented so far... # Modify the configure system so that it correctly builds for the arm hardware float raspi target. # Implemented the bootstrap to load the aros modules and prepare the arm to jump into them. Reworked the x86 console support so that parts can be stolen for raspi to use since t has no basic functionality to output to the display. # Implemented a kernel.resource to prepare the raspi for running aros and provide the low level api calls to expose available resources and allow exec, etc function. # Implemented serial debug support # Implemented the exec (and kernel) functionality required to make multitasking work (and interrupts, exceptions, syscalls, etc) # Implemented a timer.device to utilise the hardware timers. # Implemented a very basic gfx driver to expose the hardware's framebuffer. # Implemented an SD-Card driver for AROS which presently only supports the raspi's chipset but can easily be modified to support all sd-card hardware and media. # Fixed the fat filesystem support in AROS so that it can boot on RasPi's normal SD-Card setup. The "rom" image files needed use a different filename than the default linux, etc images so can be easily installed without harming the existing files - you only need to change the loaded images in the config file to get aros to boot. # Updated the build scripts to automatically download the necessary raspi firmware files and wrap it all up so that you can simply extract the archive to a fat formatted sdcard and boot it on the raspi without having to get anything else. # fix everything in contrib and ports to build for raspi (needs proper testing/fixes but allows every component to actually compile at least, including owb) + numerous other fixes to get things working on arm/raspi .. Improvements... # Implement a USB chipset driver "OR" finish the existing one [https://github.com/aros-development-team/AROS/commit/c07d13c724f944674be5db54fc6a71ee72a01809 usb otg] - the current code is mostly a skeleton that should initialise the chipset and then needs relevant code to support the different transfer types. It also has the "virtual" hub code in place to represent the raspi's USB port (from poseidons p.o.v) # Implement a driver for the USB NIC (a few weeks - depends on USB above) # Write an [https://github.com/aros-development-team/AROS/commit/d55d0f74d20b769bbb8c8d386e5c1d7a9154f05a audio driver] (a few weeks - independent of USB) and [https://github.com/aros-development-team/AROS/commit/e93a4c245f27a87c9c4c1d39206694b39059998a HDMI] # fix syscall bug in the current raspi kernel code # Graphics depend on having a decent "bcmdma.resource" implemented as to use the cpu's dma engine. The sd card driver needs to use it for transfers to/from the controller - and the gfx system needs to use it for "blitting". # [https://github.com/aros-development-team/AROS/commit/4019d84e4975d4dad987a12d57fe108f5ac048e6 Improve the gfx driver], [ vc4gfx HIDD] add [http://dri.freedesktop.org/wiki/VC4/ Gallium3D support] # [https://github.com/aros-development-team/AROS/commit/b13905b3e8e45b089f520b44692c81affddd066f Improve] the [https://github.com/aros-development-team/AROS/commit/3a876755c070f5c73c4f53c7f4d35b4f923088b9 sdcard] device driver - which is also pretty basic but should work with most cards, rework it to also support pci, etc. sd card interfaces on x86 # The current code using very rudimentary access to the gpio interface - so that should be implemented as some resource for other components to access, as-well as the i2c interface exposed over the gpio interface. that should have a hidd class implemented which uses the gpio resource to communicate. Boot up typical for most other OSs before the open sourcing of many binary blobs from 2017 onwards On power-up, the rpi [http://www.open.com.au/mikem/bcm2835/ BCM 2835] [https://github.com/hermanhermitage/videocoreiv VideoCore4] GPU, not the ARM CPU, is in control, and the SD card slot is the only peripheral device with power. The firmware burned into the BCM2835's VideoCoreIV GPU PROM requires a DOS-style partition table; a FAT-formatted first partition; and the freely redistributable but closed sourced Broadcom files “bootcode.bin” and “start.elf” in that partition. The boot sequence carries out several pre-boot tasks *On powering of the rpi, the GPU reads and executes bootcode.bin, which then loads start.elf *The GPU loads the “start.elf” file, eventually, into the L2 cache and then executes it *configures the memory split for the CPU and GPU *reads and parses “config.txt” from the same partition on the SD card and applies the settings (like a PC’s BIOS settings) *loads the “kernel.img” file, again from the same partition *activates the CPU to begin executing the loaded kernel image The CPU/GPU memory split is hard-coded into start.elf, so Broadcom provides three start.elf images, to give 32M, 64M, or 128M to the GPU for multimedia performance, and the remainder to the CPU. RPi uses [https://github.com/raspberrypi/firmware some closed source loaders] and at some point it loads a binary blob named "kernel.img" at 0x8000, at that point there would be a rudimentary Aros alive. If one wants to use the SD-card then there would have to be a driver for the interface and a fat filesystem handler (SD-card has to be formatted to fat filesystem) Boot code and kernel are now linked together and made into that binary blob, just for starters. Raspberry Pi uses [http://kernelnomicon.org/?p=133 u-boot] and [http://kernelnomicon.org/?p=138 UBoot] as bootloader, there's already some code in the Efika MX port for that. UBoot is a native bootloader and not just for the raspberry pi, it loads after start.elf. You can find Efika MX port from arch implementations, some hacking is needed for the mmakefile.src'es as iit dates back to before the Aros crosstool era or else you get some weird errors while building. You also need to code the bootstrap and serial handling. At the moment it seems that a fastest route for the native build would be to make one binary blob without using the package system. Raspberry's memory layout is pretty simple and if the implemented u-boot doesn't support loading other modules <pre> ? - alias for 'help' mtest - simple RAM test autoscr - run script from memory base - print or set address offset bbm - BBM sub-system bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation echo - echo args to console fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) go - start application at address 'addr' help - print online help iminfo - print header information for application image itest - return true/false on integer compare jade - loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nfs - boot image via network using NFS protocol nm - memory modify (constant address) pci - list and access PCI Configuration Space ping - send ICMP ECHO_REQUEST to network host printenv - print environment variables rarpboot - boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage saves - save S-Record file over serial line setenv - set environment variables sleep - delay execution for some time tftpboot - boot image via network using TFTP protocol USB - USB sub-system usbboot - boot from USB device version - print monitor version </pre> And there is one more thing about modular ports. In order to actually implement this, your bootstrapping environment should provide the ability to load several files. On PC this is provided by GRUB2. on CHRP you can read filesystem via OpenFirmware, and Sam's Parthenope relies on modified u-boot. If your bootstrap allows to load only a single file, then you stuck with monolithic kickstart. By the way... u-boot allows not only to boot up a single uImage or zImage, it also allows to write client programs AFAIK. With this approach, you actually can write modular bootstrap for ARM AROS using unmodified u-boot. Most used [http://www.compulab.co.il/workspace/mediawiki/index.php5/U-Boot_quick_reference uboot options] are fatls usb 0:1, the reason behind INTB_KERNEL is to allow use of the standard Exec function AddIntServer() to add interrupt handlers for hardware drivers etc. AmigaOS never used it for abstract hardware drivers. AmigaOS routed only raw hardware IRQs there. Their assignment was hardcoded. As well as number of them. Actually on AmigaOS every bus has its own interrupt subsystem. For example PCI bus. PCI interrupts on Amiga are routed to a single exec interrupt. 1:1 relationship between CPU and hardware interrupts is present only on PC. IMHO we miss things like AddInterrupt/RemInterrupt methods on our PCI subsystem's device class. PCI bus class should map these methods to whatever is appropriate. This is how it is done on AmigaOS and friends. When these are implemented, raw kernel.resource API will be needed only for several PC-specific drivers with hardwired resources. Exec IRQs are real IRQs only on Amiga hardware. On other machines they can be emulated where appropriate (VBlank is a good example). kernel.resource is meant to be different, its IRQs are hardware-agnostic, they are plain "Hardware IRQ number X, whatever this means". They are low-level actually, and meaningful only in the context of a particular system. Was that not the transition from irq.hidd to kernel.resource? No. A long time ago there was another hacky bit named INTB_TIMERTICK. It was "abstract timer interrupt", used by timer.device. It was the same as VBlank, but with larger frequency. I removed it, because kernel.resource API was a cleaner way to access this interrupt. Furthermore, there can be more than one timer in the system. Thinking about bringing back timer HIDD definitions again. hpet.resource is a bad idea. Can someone please enlighten me a little on how the scheduler is meant to work? Poseidon.library creates its "Poseidon Event Task" during RTF_COLDSTART -> then calls Wait(), and ends up in limbo because wait disables interrupts (used for the scheduler heartbeat), and basically waits forever because the sigbit is never set, since krnSwitch doesn't switch the task unless TF_SWITCH is set, and no codepath run during this seems to set it?? TF_SWITCH does not disable/enable switching. This flag just enables to run user-supplied hook when the task is being switched away. It is completely safe to call Wait() in Disable()d state. Doing this actually temporarily breaks this state. IDNestCnt gets remembered in struct Task, then next task is selected, and its IDNestCnt is restored in sysbase (see kernel_scheduler.c). If there are no other tasks, then your cpu_Dispatch() should enable interrupts on the CPU and enter idle mode. See x86 implementation for good example. You miss what happens next... 1. KrnSwitch() saves context of your task, saves IDNestCnt (core_Switch() and cpu_Switch()), then drops into cpu_Dispatch(). 2. cpu_Dispatch() calls core_Dispatch. Then two cases are possible: 2a. There is a READY task. It is picked up, its IDNestCnt is restored in SysBase, then cpu_Dispatch() needs to restore registers and exit. The next task is run. 2b. There are no READY tasks. core_Dispatch() returns NULL. In this case your cpu_Dispatch() should enter idle loop. It should just enable interrupts on the CPU and put it on halt. This allows it to process hardware interrupts. Eventually some of your interrupt handlers wakes up your task and puts it into READY list. My heartbeat interrupt has been slowed atm to help debugging - but it never actually gets a chance to fire because of the Wait() disabling interrupts. Perhaps you have forgotten to enable interrupts in your idle loop. There is a change in the format of AROS executables. Until now we were using Elf RELocable files which are usually used as intermediate object files. We had them for various reasons, one of them was how AROS files were built in the past. That days we had no real aros cross compiler and the option to embed relocation data in unix executables (or in executable files in general) was rather new and not every linux/unix system had it. Therefore we have decided to use intermediate files. Although it was somehow working (and it is still working :-)), it has some drawbacks. Therefore decided to introduce real Elf EXEC types, in first turn implemented on ARM target with option to expand in future to all other AROS architectures. The first patch was pretty easy and appeared to work somehow. It generated nice executables with embedded relocation info. Not only that, it also removed all global symbols adjusting relocation data to be relative to the beginning of the sections. That move reduced number of symbols in each executable significantly (depending on the file between 20 and 80% of all symbols could be removed). The only symbols that stayed in the file are local ones - due to the nature of the patch wasn't able to remove them since we have not seen them in the symbol hash table. The patch didn't worked though. The files were relocated, AROS kernel loaded, but it crashed very early. What happened? Well, the nature of ARM relocations happened :) Most of the relocation data on all machines is rather simple. Relocation can be absolute or pc-relative, sometimes the offset has to be bit shifted. On ARM v7 there is another one. There, when one wants to load an address of function/variable into register a combination of two instructions can be used: movw and movt. The first one loads immediate into lower 16 bits of a register while clearing upper 16 bits. The second one loads immediate into upper 16 bits without touching lower halfword. Loading of a pointer into a register looks like this: movw r0, #:lower16:label movt r0, #:upper16:label In this case there are two relocations - one for lower halfword and another for upper. If an overflow of lower 16 bits occurs during relocation process, the upper one should be updated as well. Unfortunately with current patch and with typical ARM executables there is not enough information to perform the calculations. There are two options - the first one would be to give up and go back to "fake" executables, another one would be to change from REL to RELA relocation info. The latter contains an addend, extra data which can be used to perform all the relocation calculations I need. Decided for the second option. The patch is already in the works. There is another function for the binutils' bfd backend to perform the final relocation. There can decide what to do with every reloc info, modify data and eventually strip some symbols. An advantage is - at this stage of the linking process have also full access to all local symbols so can change all relocations section relative and eventually strip all symbols from the files. === GPU === VCore developed by Alphamosaic Ltd and now owned by Broadcom. Most of start.elf runs on the GPU. Placing ALL the userland GPU code in the videocore.hidd isn't going to be a terribly big problem because the code they published is nothing more than a shim that sends data straight to the GPU to execute. The good news about this is that we only need to write our HIDD using the OpenVG API. The shim is relatively small codewise and lives in the ARM memory (the actual OpenVG code itself lives in the GPU RAM area and its loaded from start.elf). That's also the bad news. Our driver has to translate AROS video calls to OpenVG calls, for most tasks it should be easy, for some, not so much. It's still probably less difficult and less work, than controlling the GPU directly. The other good news is that anything done through OpenVG happens on the GPU, its truly accelerated. It also has some nice font functions, meaning we can lead into an accelerated text mode later. Basically, AROS resets or locks up when it tries to use AROS_ATOMIC_INC or DEC. If I comment out the byte/word operations in the header files and use non-atomic operations, the code works as expected. have read that the L1 cache needs to be enabled to use LDREX and co (which I also read is only meant to be used on multi processor systems with shared memory) - however I am certain this is correctly enabled. If you are using LREX or STREX, you should have L1 cache enabled, at least on the ARM CPU I work with at work. L1 cache is enabled by enabling the MMU *AND* setting the C and I bits in the CPU - the C bit is ignored, and the I bit only covers the 16 byte instruction pipeline if the MMU is not enabled. Can you verify that your assembly is generating LDREX/STREX? From the behavior, it almost sounds like its generating the default Semaphore locked atomics. Impossible. There are no semaphore-locked atomics. There are Disable()/Enable()-based ones instead. And there's a special #define AROS_NO_ATOMIC_OPERATIONS in this case, which tweaks Disable()/Enable() implementations not to recurse forever. I have tested this on ARMv5 which does not have ldrex/strex, it works fine. On those ARMs there's no way to have real atomics. On other OSes (like Linux) this is done by introducing things like atomic_t, which appears to be a complex structure, holding the value together with accompanying spinlock (implemented using swp). #warning "TODO: lookup optimal mmu table settings for raspi memory" /* Set up an identity-mapping for all 4GB */ for(x = 0; x < 4096; x ++) { pagetable[x] = x<<20 | (0x40002|0x80000|0x010000|0x00C00|0x04); } Shouldn't there be a second loop that sets the 'C' bit in the descriptor for the RAM pages? Currently, you have TEX=0, C=0, B=1 for all pages (Shared Device). You should have TEX=0, C=1, B=0 for RAM (Write-Through, Cached) So .. pagetable[x] = x<<20 | 2; should be enough? No, for RAM you need to change the '| 0x40' to '| 0x80' tell dosboot the correct defaults to use Please don't do this. This bootconfig.c is a deprecated legacy thing. I wanted it to go away completely with time. Instead, display drivers should auto-install themselves during own initialization phase. I. e. detect hardware=>instantiate itself. This should make things way simpler. With this approach you only need to add the driver into KS image to get the device autobooted. No hardcoded stuff. Currently VESA and VGA drivers do this, look there for examples. never rewrote ATI driver because i don't have any test system for it. they defined a smaller AROSCPUContext than the ExceptionContext - yet reference it as ExceptionContext in other places, and since it hasn't allocated enough storage for ExceptionContext, are corrupting memory/the structure (since the elements that are there don't map 1 to 1 with the exception context). AFAIK, AROS has been moving in a different direction to this in recent years. It is the job of graphics HIDDs to allocate bitmaps etc. so that they have the most suitable characteristics, including allocating them from GPU RAM where possible. The concept of chip RAM is only for legacy code, and most if not all non-68k platforms should have all system RAM marked as chip. BTW, is the video processing code you mention CPU code or GPU code? Also, IIRC we have support for "external memory allocators". Perhaps that's what we need for the allocation of GPU RAM through the mailbox. All hosted and x86 native ports should use proper context formats. trying to clarify if the vblank handler has to have run by this point to prevent this deadlock. Actually, no. Unless you have installed VBlank handler which should wake up at some point. Without VBlank there will be no quantum count. Consequently, there will be no forced preemption. But the rest will work, and multitasking will be cooperative (switch happens only when current task voluntarily gives up the CPU). Does it depend on the vblank having run before this point? and if yes what does that mean on systems where it might be able to run enough code (e.g. get to this point) before the vblank interrupt has triggered? What is it waiting for? It could wait for timer, in this case you need timer.device working. VBlank is currently needed for exec's quantum counter. In current native ports we have only a single timer, which is served by timer.device. VBlank is simulated by timer.device also. If your machine has two timers, then you can use one of them for VBlank, and another for timer.device, this will simplify things down. VBlank needs to be 50 Hz for historical reasons, many programs use it as cheap timer. I am periodically thinking about making some abstract mechanism to be able to change quantum source (and untie it from 50 Hz), but have no time to come up with something good. Additionally i started disliking timer.device hardcoded design when PC has got many timers (old 8253, APIC, HPET). Currently i think there should be some low-level entity representing tick source. timer.device should just select the most appropriate source for its units. The BCM2835 has 4 GPU based timer sources - 2 are used by the GPU, so im using Timer3 for our heartbeat and the remaining one will be free to the system. There is also the less capable ARM timer but that is dependent on the CPU frequency. Very good. You won't need any emulation. Set the heartbeat to 50 Hz and drive VBlank from it. Use other timer for MicroHZ. Can you use the 'econsole.hook' I make for debugging the Sam460 via the serial port? It provides a before-anything-else shell prompt on the serial port. You can then do 'NewCLI' to test your graphics, or use any DOS command in shellcommands.resource. You should just be able to add econsole.hook to your module list, and use 'econsole' in your bootargs. So long as you have a working Exec/RawMayGetChar and Exec/RawPutChar, it should work. Also make sure to add shell.resource and shellcommands.resource for this. That should have done it. If you set "#define DEBUG 1" in arch/all-native/econsole/econsole.c, do you get any additional serial output? have added it to the build and added econsole to the command line - and can see the bootloader picks up on the emergency bootconsole tag, but I still only get the insert bootable media display? Im assuming it exposes a fake filesystem that tricks aros into booting? The contents of which are: ECON:AROS.boot Way to handle the scheduling code? The implementations I had been following were causing problems, due to cascading interrupts which I cant handle properly in the asm stubs just now (when they break disable etc.) - since it means detecting the interrupted codes cpu mode and getting the correct sp/lr for it, and that's just too tedious for arm. To work around this ive added a system idle task which does nothing - and when the scheduling code has no task to run switches this in and lets it run, thereby allowing the interrupts etc to resume until something does need to happen. Also, by adding accounting code to cpu_Switch() and cpu_Dispatch(), it should allow the system to log idle time correctly (as well as running tasks). have thought of also adding an additional task that never runs, solely to record time spent in IRQ handlers, but I digress.. was under the impression that kernel.resource should *never* be used outside of exec.library. This is a wrong impression. Michal started designing it because portable nature of AROS does not fit well into exec's API with all its assumptions. So, he started the new, hardware-agnostic kernel API from scratch. Yes, exec sits on top of it in places. But kernel always meant to be open thing. Otherwise it would not exist. it wasn't meant to be just used willy nilly by user code - but by lower system components (e.g. exec) so that they could be implemented in a more generic fashion, and the kernel resource itself hide the systems quirks. Adding new things there perfectly keeps up with our decision to minimize AROS-specific intervention into APIs which can clash with MorphOS/OS4 extensions. We want at least source-level compatibility there. Binary compatibility on PPC would be extremely cool, but at the other hand we have no maintainer for this, as well as their ABIs are a bit weird and far from optimal, especially MorphOS one, because it aims for m68k binary compatibility. It depends on what exactly is being implemented - there's no reason we should have everything crammed into kernel.resource if it doesn't need to be (i.e. if its better suited as a separate component/subsystem in its own right) The _LE versions are for when you have endian swapping taking place. If the graphics are the same endian as the CPU, no swapping should occur. I ran into a similar terminology problem in SDL with a friend insisting that his Radeon 7000 on his PC was big-endian. It is not, it just uses the same endianness for the graphics card and the CPU so no swapping was necessary. They were both little-endian. The _LE versions are because the PixFmts refer to the bitmap data being in big endian format in memory, for which the normal version would need to do endianness conversion before applying the shifts/masks. on this platform it is in _LE in memory also so we don't need the conversion hence using the _LE version of the call). would use _LE (if it's really little endian 16 bit mode). What is the bare minimum needed to implement a framebuffer based gfx driver, with our software handling the rest? I have tried with just a gfx class that only expose new/dispose/newbitmap - and having an onscreenbitmap used only for the framebuffer itself (with all other bitmaps being chunkybm, and the framebuffer's superclass also being chunkybm), but that alone isn't enough it seems? You can use workbench/hidds/sm502/ as your example - it is as simple as I could make it. So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. I so far have -: vc_init: queries the gpus memory, and sets up a fake memory handler for it, then adds the bootmode driver and returns saying all is well vc_gfxhidd:New: sets up some fake syncmodes to test with and creates the real gfx object. vc_gfxhidd:NewBitmap: checks if its a framebuffer and uses the onbitmap class or uses the chunkybm class otherwise vc_onbitmap:New; creates a chunkybm object and then pushes the real framebuffer address into it as the buffer, So, AROS creates the framebuffer bitmap (I have verified this) -> so surely it should be capable of then rendeing into it? I don't actually create the framebuffer "bitmap object" myself - only as a result of being asked to. The code I currently have on SVN seems to create the framebuffers bitmap object fine, but then crashes in intuitions DisplayDriver callback. In particular it crashes performing the getattr on the system default pointer. don't expose MEMF_CHIP in an allocatable form so AllocSpriteData was failing (and other code later doesn't check if the values are valid == illegal memory accesses) vc4 had v8adds, v8subs, v8muld, v8min and v8max which operated on four 8bit uint values packed into a 32bit register. Multiplication was in the range 0.0 to 1.0 and addition/subtraction saturated. There were also a range unpacking/packing modes that allowed you to pack and unpack 8bit values into 32bit registers. RasPi has to speak to the "operating system" which runs on the GPU itself and request/free memory - it cant directly manage it itself, and so the managed functions were used to wrap these calls. The Arm and GPU share memory space. The framebuffer is shared. The Arm can write a pixel and it will appear on the screen (through GPU hardware) without flushing/copying being required. The GPU can composite multiple FB's in real time - so you have a number of surfaces defined which are rotated etc and composited in real time to the output. Copying can map from the address space of the Arm to the flat space of the GPU which takes some code, but I don't think whole buffers are copied. The DMA hardware can also access the whole memory space and can perform 2D fills and blits (no blending). This is documented in the peripheral spec posted. The DMA is just an Arm accessible peripheral and can be set up with low latency (e.g. microseconds). must use a 0xc0000000-based bus address to access SDRAM, yet non-DMA access should go via a 0x0-based bus address. For 2D dma, set TDMODE, and the spec says "interpret the TXFR_LEN register as YLENGTH number of transfers each of XLENGTH, and add the strides to the address after each transfer." so set STRIDE to pitch of the image, the width is XLENGTH and height is YLENGTH. You would fill by not setting the SRC_INC and point source to your fill data. The DMA cannot see the ARM's L1 cache, so you would map the framebuffer with ioremap_nocache. Depending on where the source data comes from, it may need an L1 cache flush. The DMA can see the L2 cache. Use 0xC0000000 bus addresses when L2 is disabled and 0x40000000 bus addresses when L2 is enabled. (actually just call virt_to_bus and you'll get the right address out). openGLES/openVG has high latency. Writing to framebuffer then reading it back is very inefficient (e.g. milliseconds). If you can drive it a unidirectional way, just streaming commands at then that is efficient. openVG is not implemented on top of openGLES - it uses the same hardware but as a first class interface To improve the Gfx driver, we will need a DMA resource implemented so can use to perform DMA operations. The Gfx driver will need this to perform blits. Actually MEMF_CHIP has to present, for historical reasons. This has been never fully agreed upon, but in ports i wrote i exposed the whole memory as MEMF_CHIP. The idea behind this is that CHIP is originally the memory where graphics and sound data can be put. On non-Amiga platforms there are no restrictions on this, so the whole memory is CHIP. Yes, many old software can misbehave with CHIP memory size larger than 2MB. But this actually applies only to m68k AROS which is going to run m68k binaries. In other cases it's quite logical to fix the program when porting. As to original question: yes, it's enough to have a framebuffer bitmap (one with aoHidd_BitMap_FrameBuffer set to TRUE) and PutPixel routine. It framebuffer can be served by chunky bitmap class, then you can simply create chunky bitmap with your own buffer (see how VESA driver does this). Chunky PutPixel is already there. struggling to determine what is the correct pixfmt to use for the 24/16/15 bit gfx modes on the RasPi. AFAIK it uses RGB565, for 16bit but im unsure what shifts etc should go with it? suffice to say Im getting the wrong colors so far lol. <pre> redmask: 0x0000F800 greenmask: 0x000007E0 bluemask: 0x0000001F alphamask: 0 redshift: 16 greenshift: 21 blueshift: 27 alphashift: 0 </pre> It should likely be vHidd_StdPixFmt_RGB16_LE This stuff is a bit confusing. The "names" of the stdpixfmts are based on the layout in memory, ignoring endianess. So for example: ARGB32: will be 0xAA 0xRR 0xGG 0xBB in memory on both big endian and little endian machines. The shifts and masks OTOH are based on pixel access (ULONG in this case), so differ depending on whether you run on big endian machine or little endian machine (that's why there's stdpixfmt_le.h and stdpixfmt_be.h in rom/hidds/graphics/). With the 16 bit pixel format it's even more confusing, as for example it's impossible on little endian machine to describe RGB16 with shifts/masks alone. That's why there's vHidd_PixFmt_SwapPixelBytes_Flag. (RGB16 == RRRRRGGG GGGBBBBB in memory, and for pixel (WORD) access on little endian machine it needs to be accessed as GGGBBBBBRRRRRGGGG). The shifts btw indicate how much to shift the component to the left (!) so that it is moved to the highest bit (31). The aHidd_PixFmt_StdPixFmt you specify will be ignored most of the time, because when the pixelfmt is registered, the gfx hidd checks if there's an identical pixfmt (shifts/masks/etc., but ignoring pixfmt->stdpixfmt) already in the system, and if so, it uses the already existing one and does not create a new one. In theory it would be better if gfx drivers could simply/only specify a StdPixFmt without all the shifts/masks stuff when the gfx driver uses pixfmt which matches one of the stdpixfmts exactly. Another possibility would be for gfx drivers to use HIDD_Gfx_GetPIxFmt(stdpixfmt_gfx_driver_wants_to_use) and then peek shifts/masks from it and fill out a pixfmt tag list based on that. 15bit very blue/green: Try to pass same shifts/masks/etc. as in 16 bit pixfmt (maybe you think it's using 15 bit R5G5B5 (or swapped) but it's actually still using 16 bit R5G6B5 (or swapped). aHidd_PixFmt_StdPixFmt you pass is mostly ignored. It's the shift/masks/etc. that count. But I would still pass the correct one (_LE) == whatever rom/hidds/graphics/stdpixfmts_??.h uses in the entry where you have looked up shifts/masks/etc. Use the shifts/masks/etc. from the entry in stdpixfmt_le.h (if you are running on little endian machine) or stdpixfmt_be.h (if you are running on little endian machine) that matches the pixfmt that its meant to be. 0xAA,0xRR,0xGG,0xBB on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on little endian (->entry in stdpixfmt_le.h which says vHidd_StdPixFmt_BGRA32) 0xAA,0xRR,0xGG,0xBB on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_ARGB32) 0xBB,0xGG,0xRR,0xAA on big endian (->entry in stdpixfmt_be.h which says vHidd_StdPixFmt_BGRA32) it feels like AROS trashes the alpha component, otherwise it should be 8A8R8G8B. read on the subject suggest its in 1x5r5g5b (x is ignored) to keep 16bit alignment . Suggests to me that wrong shift/mask are being applied - however going by the 16bit versions it all looks correct to me so I am really confused as to what is happening. The output image looks to have too much green/blue, and very weak red. Why did usbromstartup become HW-specific ? In the past i have done a big job separating kickstart into several parts. I have never got any responses, so i re-describe my idea. For now it loads the hs otg chipset driver .. The idea is to minimize amount of archirecture-specific modules to make user's life easier. So, the kickstart was split into 'base' (which does not contain anything machine-specific) and 'BSP' (Board Support Package) which contains all hardware-specific stuff. This way, for example, distribution makers can save up space on CD and make CDs with multiple platform support. Different configuration would load the same base with different BSP's. Next there was some part which is entirely missing on hosted. These are filesystems. Hosted ports do not need them to boot up, so on hosted they are left out. At the other hand, they are also architecture-agnostic. So i put them into 'FS' package (standing for 'filesystem'). Poseidon is one more big part. I made it into separate package in order to allow users to omit it if they don't need it (for example, to run on retro PCs without USB). Personally i have one. Again, Poseidon is hardware-agnostic (well, there are USB drivers but HCIs are pretty standard). It's mandatory on PI since there are no other interface types - so being a separate package is irrelevant/pointless. Is Raspberry's USB controller non-HCI compliant? Actually i expect it to be compliant, then wouldn't it be better to make existing drivers discovering them? AFAIK its HCI 1.0 compliant but I'm not familiar enough with poseidons drivers, nor USB, to just hack away at the existing code. Perhaps once i'm more familiar with the workings I can merge in the changes needed to get it operating but for now I will focus on getting it running. Also our drivers have known issues so perhaps a fresh set of eyes might shed some light on what is going wrong. Another interesting question is whether Poseidon can operate on device side. Is it flexible enough? How similar is being a USB host and USB device? think it will need a bit of work on Poseidon's side. Until then I will force the driver into Host/Master mode in the init code, but leave open device etc to configure the chipset for either's use - and look at trying to add support for working in Device/Slave mode & switching modes once it's up and running. Actually USBROMStartup is some kind of kludge. Can there be any alternative? Could device drivers be self-installing, like our HIDDs? This would get rid of need to list them in USBRomStartup. * Model A and B limited to 150 mA per port. * Model B+ and Pi 2 introduced configurable 600 mA to 1.2 A support over all ports - anything above that requires a powered USB hub. Implementing the hardware driver that Poseidon uses to interact with the USB components. Have code in place to (try) and initialise the USB chipset, and configure host/device mode operation (though AFAICT Poseidon doesn't support device mode). Started to get the "virtual" root hub written for the single USB port so that Poseidon should at least list it correctly in the GUI - and try to interact with it to find peripherals. The BCM2835 uses a soft IP block from Synopsys’ DesignWare library (DWC), specifically the block is called dwc_usb_2_0_hs_otg_subsystem-ahb_se (“USB 2.0 Hi-Speed OTG Controller Subsystem w/AHB Interface SE”). There is no public documentation for this, and pretty much zero chance of anyone getting hold of it even with NDA. However, there's a Linux driver written by Synopsys ([https://github.com/raspberrypi/linux dwc_usb]). Specifically directories [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_common_port] and [https://github.com/raspberrypi/linux/tree/rpi-patches/drivers/usb/host dwc_otg]. The Synopsys code is actually under a fairly permissive licence – it's not GPL, it's similar to BSD (’don't sue us if it breaks’ is pretty much the only clause). So this should not be a barrier to porting the code. The code is really well written, with a nice partition between the work done by the driver (dwc_otg, which is fairly involved, given the host does more work than a conventional EHCI driver), and the interface to Linux (dwc_common_port). Probably only need provision of relevant changes to dwc_common_port. Other things to consider.... * Provision of necessary headers to get it to compile * Provision of necessary functions (main issues are wait queues, threads, work queues, tasklets, timers, spinlocks and mutexes (multithreading) ) * Interfacing between USB stack and the driver. dwc_otg/dwc_otg_hcd_linux.c looks like the place to start. the Linux bits of the headers are only required for the dwc_common_port library. dwc_common_port includes a variety of crypto functions which are not used – it appears to also be used for ultrawideband (UWB) and wireless USB (WUSB) drivers where crypto will be an issue, but it isn't going to be for plain wired USB. Every USB driver acts as an USB hub as well in order to let Poseidon control the state of USB ports. The code there was reading status of the only USB port in Raspberry's CPU but when changing the status it erroneously deleted some of the status bits, including the port enable one. It was so because those bits in the status register are of a type Read/WriteToClear. It means, if one does not want to change their value from 1 back to 0, one has to actually write the 0 value. Very practical thing e.g. in interrupt handlers, where one reads the interrupt status register to learn what was the interrupt reason, and writes it back to the same register in order to clear the interrupts. After fixing that code it turned out that the communication was still unsuccessful. Apparently the USB device was not understanding the host for some reason. That should not happen since the request sent was one of the standard ones implemented by virtually anything with an USB connector, assumed that Poseidon clears the data caches before forwarding the work to the USB drivers but that's the responsibility of the driver itself. The USB device responded and acknowledged the transmission! But why were all the request sent after address change failing with timeout? They should not. Once again, address set is supported just by anything. Tried to contact the device at address 0 once again and there it was, still responding properly. The enlightenment came. The bus address for DMA transmissions was, as it is in many bare metal USB implementations, just the pure memory address of the buffer as seen by the ARM cpu. Have "prefixed" it with the real location of uncached RAM and booted AROS once again. Trident saw this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 and this: Product : Vendor: Vdr=0424/PID=EC00 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 255 SubClass : 0 DevProto : 1 VendorID : 1060 ProductID : 60416 DevVers : 0200 and even this: Product : Hub: Vdr=0424/PID=9514 Manufacturer: Standard Microsystems Corp. SerialNumber: n/a /Users/michal/git/AROS/rom/USB/poseidon/./poseidon.library.c:psd_20_psdEnumerateDevice/3092: USBVersion: 0200 Class : 9 SubClass : 0 DevProto : 2 VendorID : 1060 ProductID : 38164 DevVers : 0200 What are these things? The first one is USB hub built in the Raspberry. Thanks to this one the Pi machines (with exception of Pi0 and computing modules) have more than just one single USB port. The second one is the network chip in raspberry, the third one is my USB SD card reader which have just connected to see what happens. AROS tried, of course, to boot from it ;) So, the first step towards working USB is done. The control transfers are working as you can see above. Next step is to implement bulk and interrupt transfers, having the basics in place. Finally some error handling will be added and USB for Pi will be as complete as the PC version. [http://www.raspyfi.com/raspberry-pi-usb-audio-fix/ Issue with USB Audio] Audio [https://github.com/raspberrypi/linux/tree/rpi-patches/sound/arm audio] and its [https://github.com/raspberrypi/firmware/issues/2 very high speed message passing interface type of thing VCHI] The Model B+ added an additional voltage regulator for the audio output and an additional output driver to drive low-resistance loads like headphones. However it is still using pulse-width modulation (PWM), which has a major impact on sound quality the old Raspberry Pi used a linear voltage regulator to provide the 3.3V to many of the components on the board while the new one uses a switching regulator. Both can perform reasonably well. However switch mode power supplies often show higher noise figures Analogue audio Audio over HDMI rev 1.3 & 1.4 Ethernet 10/100 BaseT Ethernet RJ45 socket GPIO GPIO shouldn't be too bad but bear in mind it is already accessed in places so they would need to allocate pins etc through it (e.g. sdcard to flicker the activity light, serial debug to output data on the GPIO pins) Probably a resource rather than a device... Started an i2c driver that will need to allocate GPIO pins. Feel free to work on it if you are interested ;p GPU graphics with 2D and 3D acceleration Sadly none yet for 32bit but for 64bit... Miscellanous hdmi issues Setting the hdmi_force_hotplug=1 makes sure the Pi believes the monitor/TV is really there. You might also need to set config_hdmi_boost=4 or even higher (up to 9) if your display needs a stronger signal. If the display is a computer monitor or newer tv, use hdmi_group=1 (auto HDMI use) and if it is an older TV, try hdmi_group=2 (for DMT formats, i.e. for PC monitors) then you HAVE to "set hdmi_drive = 2 to enable HDMI output as this forces HDMI mode rather than DVI mode Do not set hdmi_safe=1 as that overrides many of the previous options. Using a shorter or better quality HDMI cable might help. Make sure your Pi's power supply delivers 1 A and not 500 mA. If you see a problem with the red colour - either absent, or interference - then try a boost composite video changing the RCA cable, then the composite port worked out of the box Boot it as you are doing, without HDMI. If you now plug in the HDMI, do you get the image? In other words, does the Pi think HDMI is connected even when it isn't? Rename all the files in the first partion of the card except bootcode.bin, start.elf and fixup.dat What's the result? Put back config.txt What's the result? for PAL mode sdtv_mode=2 dmi_ignore_hotplug Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is not attached hdmi_ignore_hotplug=1 Use composite mode even if HDMI monitor is detected <pre> # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 #config_hdmi_boost=4 #overscan_left=24 #overscan_right=24 #overscan_top=16 #overscan_bottom=16 #disable_overscan=0 start_x=1 gpu_mem=128 </pre> tvservice -c "PAL 4:3" <pre> /opt/vc/bin/tvservice -s or tvservice -s state: HPD high|HDMI mode|HDCP off|composite off (0x12001a), 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m CEA Group CEA has 1 modes: (native) mode 16: 1920x1080 @ 60 Hz, progressive /opt/vc/bin/tvservice -m DMT Group DMT has 0 modes: </pre> sudo amixer cset numid=3 1 forces the audio to the headphone jack, even with the HDMI video output plugged in config.txt the hdmi_ignore_edid_audio=1 option sems relevant as it should tell ALSA that the only available audio is analog, no matter what the display says There are several different ways that these 4 pole (ring) composite analog cables can be wired up, so some work great in some applications and can be a waste of time in others. What is needed for the Raspberry Pi B+ and above, which like many camcorders needs the ring contact next to the base contact to be the ground. The wiring for the 4 pole are: TIP (LEFT AUDIO CHANNEL) RING 1 (RIGHT AUDIO CHANNEL) RING 2 (GROUND/EARTH) RING 3 BASE/SLEEVE (VIDEO) YELLOW Most Apple based Players and the Microsoft Zune (TM) are wired this way. Most analogue camcorders are wired this way as well, where the ground in on Ring 2 will work with the Pi although you may need to swap your Video plug with the Right Audio plug. Nearly all other MP3 players are not wired this way, the ground is on another ring ie the wrong one. External devices * Camera Module Omnivision ov5647 Sunny 5MP (NoIR version) V1.3 - NoIR at 850&nbsp;nm, peak at 880&nbsp;nm and trails off at 940&nbsp;nm wavelengths * Camera V2 Sony IMX219 V2.1 8mpixel 8MP 8megapixel - 3280 x 2464 pixels - video at 1080p30, 720p60 and 640x480p90 - wider field of view, 62 vs 54 degrees horizontally - * Branded WIFI usb BCM43143 dongle N.B. dreaded error after changing cameras (stupidly without turning off the power first) and lasted through several power cycles. It can be a bad 15-pin FFC ribbon cable, when swapped, camera(s) and the Pi itself are working OK. It can be an instance of a cold solder joint on the CSI connector on the pi board. the camera can be detected (that's done via I2C) but may still not be able to receive image data (done via CSI-2) if something is broken. CSI-2 is uni-directional. Control is generally done via I2C. The CSI-2 receiver always writes to memory, not direct to the ISP. That's the way the Broadcom architecture works as it allows multipass processing easily. GPU memory is accessible from the ARM. Processing using the QPU graphics processors may be possible. currently the only supported sensor is OV5647 and IMX219. The linux drivers are all in the firmware blob, else you'd be looking at at least a man-month of work in a fully fledged imaging lab to do a decent tuning of the camera modules' ISP parameters. Static electricity maybe an issue for the camera module and slightly less for the pi board. == References == [https://www.raspberrypi.com/documentation/computers/compute-module.html CM5] has the same 55mm x 40mm 2x100pin connectors form factor as the CM4 but [https://www.epdtonthenet.net/article/214508/Key-Considerations-When-Migrating-from-Raspberry-Pi-CM4-to-CM5.aspx some pins and other small things] have changed. Will need the [https://raspipcb.com/tech-blog/raspberry-pi-cm4-vs-cm5-difference-in-booting-from-sd-card/ right IO board to suit] *Green [ Raspberry Pi Compute Module 5 IO Board REV2 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1967]] - untested *Green [ RPi Compute Module 5 IO board REV1 [https://pip.raspberrypi.com/categories/1097-raspberry-pi-compute-module-5-io-board SC1751]] - untested *Black SupTronics Geekbord X1500 CM5 IO Carrier Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *Green BentoIO CMX0 - untested *[https://sipeed.com/nanocluster Sipeed NanoCluster] - untested up to 7 CM5 *Home Assistant Yellow - Kit with PoE with Raspberry Pi Compute Module 5 - untested *Blue [https://www.waveshare.com/wiki/CM5_PoE_BASE_A Waveshare CM5-PoE-BASE-A] - untested *Box Waveshare [ CM5-POE-BOX-A] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-B Waveshare CM5-IO-BASE-B] - untested *Blue [https://www.waveshare.com/wiki/CM5-IO-BASE-A Waveshare CM5-IO-BASE-A] - untested *Blue Waveshare [https://www.waveshare.com/wiki/CM5-NANO-B CM5-NANO-B] - untested *[https://carboncomputers.us/products/pi-flux piFlux] *[https://carboncomputers.us/products/ Zitaotech Hackberry] CM5 lite only - *Portable [https://www.waveshare.com/pocketterm35.htm Waveshare PocketTerm35] with Pi4B or Pi5 - untested *Box [https://www.clockworkpi.com/uconsole ClockworkPi uConsole][https://www.youtube.com/watch?v=EtI_bAahbR8 CM4 into an adapter or CM3 into so-dimm - Cyberdeck] - untested *Green RPi [https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip Compute Module 4] [https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf IO board] V1.4 [https://datasheets.raspberrypi.com/cm4io/CM4IOUSB3-KiCAD.zip USB3] [https://datasheets.raspberrypi.com/cm4io/cm4iousb3-appnote.pdf CM4ISO] [https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf Dual100pin] (2020) aka Development Platform Board - untested *Purple Pi Hut Cytron CM4 Maker Board - untested *Black DeskPi Super6C Cluster Mini-ITX Board - untested *[ KubeSail PiBox mini 2] *Home Assistant Yellow with Raspberry Pi Compute Module 4 - untested *[ Turing Pi V2] - untested CM4 with 260-pin SO-DIMM socket adapters and/or nvidia jetson nanos - untested *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-B Waveshare CM4-IO-BASE-B] - untested but binary blobs *Blue [https://www.waveshare.com/wiki/CM4-IO-BASE-A Waveshare CM4-IO-BASE-A] - untested but binary blobs CM3 has a 200 pin sodimm ddr2 connector form factor but not electrically SC0028, SC0029 *Blue [https://wiki.geekworm.com/CM_IO_Board Geekworm RPi Compute Module IO Board] [https://github.com/geekworm-com/cm-io-board CSI DSI] with CM3 in ddr2 slot underside - '''works''' if SW1 on but CM3+ '''does not''' *Green [https://cdn-shop.adafruit.com/product-files/3442/CMIO_schematic.pdf RPi V3 IO board CM3IO] and CM3 Lite - untested *Green [https://turingpi.com/ turingpi v1 cluster] - untested up to 7 cm3 7xlan9514 12V discontinued sadly, 3 x Pi4 probably better *Blue [https://www.waveshare.com/wiki/Compute_Module_PoE_Board Waveshare Compute Module PoE Board] and CM3 lite (if not lite, write files to internal eMMC fat32) '''AVOID''' bin blobs *Blue [https://www.waveshare.com/compute-module-io-board-plus.htm Waveshare Compute Module IO Board Plus] [https://www.waveshare.com/wiki/Compute_Module_IO_Board_Plus wiki] [https://forums.raspberrypi.com/viewtopic.php?t=235695 pin settings] with CM3+ Lite - '''AVOID''' binary blob *[ Pi02w on Geekworm SupTronics X305 Raspberry Pi Zero IO Baseboard] - untested *[ Spotpear Pi Zero 2w to Pi3b format-ish] - untested *[ pi-top v4] box with pi4 *[ pi-top v3] three green pieces, heatsink covers most of the base tray, pi-top hub mk1 lhs and Pi1B Pi2b Pi3b rhs secured from below, black rounded strip with pi-top above keyboard, 13.3" HD 1366 x 768 display, small touchpad, *[ pi-top Model 2.0] pi-top on bottom bezel of 14-inch green laptop, large trackpad, keyboard slide down to reveal main system hub on slide rails moved to the right, Raspberry Pi3b screws down, hub slides in, 18V 2.5A 45W charger brick, battery 11.1V 3500mAh 38.85Wh and storage PiTopOS *[ Pi-Top CEED Raspberry Pi Modular Educational Desktop with RPI3] monitor *[https://www.indiegogo.com/en/projects/jesselozano/pi-top-a-raspberry-pi-laptop-you-build-yourself Pi-Top v1] wedge laptop with RPi2 <pre> 2008 Trustees collected for Foundation 2009 Pi Foundation charity status gained 2010 2011 First Raspberry prototypes 2012 First boards go on sale at CPC and RS. The Model A and B 700 MHz Arm11 - February 29th BCM 2835 2012 First million sold - more than the 10,000 original planned and anticipated 2013 First Alpha Experimental builds of AROS Native for the 32bit Pi 2013 Pi Trading launched making grants available, providing in house educational resources and Pi Academy for teacher training 2013 Over two million sold 2014 Over three million sold 2014 Pi 1 Model B+ introduced that moved composite video to audio jack and same half gig of memory 2014 Pi Model A+ v1.1 no ethernet and 1 usb - a little smaller - 2015 Over four million first gen pis sold 2015 Pi Zero 1.2 BCM2835 first production revision released with no camera port 2016 Pi0 1.3 released with camera csi connector 2017 Pi Zero W v1.1 1GHz Pi0W, single-core 32bit CPU BCM2835 released with Cypress CYW43438 wireless 2020 Raspberry Pi Pico SC0919 with RP2040 32-bit 2Core ARM Cortex-M0+ up to 133 MHz - 264KB of SRAM and 2MB of on-board QSPI Flash - 2024 Raspberry Pi Pico 2 with RP2350 2Core 32bit Arm Cortex-M33 and 2core open-hardware [https://github.com/wren6991/hazard3 Hazard3 RISC-V] 2015 Pi 2 Model B v1.1 BCM2836 900/600 MHz ARM Cortex-A7 Armv7 quad 32bit, 32bit VideoCore IV GPU - 1Gb RAM - 5V 2A micro usb - SMSC LAN9514 chip - 2015 Over a million pi2s sold 2015 Raspberry Pi 2 Model B version 1.2 Pi2bv1.2, aka Pi2B2 has armv8 BCM2837 underclocked to 900Mhz without wifi/bluetooth module 2016 Pi 3 Model B - Broadcom BCM2837 SOC four 64bit ARMv8 Cortex-A53 1.2GHz 32bit 1080p VideoCore IV GPU - 1Gb DDR2 - bluetooth 4.1, Cypress CYW43438 wireless 802.11n - 4 x USB2.0 ports - 5.1V 2.5A - SMSC LAN9514 chip 2016 PIs total over 10 million worldwide 2017 Compute Module 3 CM3 with BCM2837B0 armv8 Quad 64-bit - small 67.6mm x 31mm board which fits DDR2 SODIMM connector but not electrically compatible which plugs into needed IO board - beware of the I2C protocol issue 1Gb LPDDR2 RAM - Lite or 4Gb Emmc storage 2017 12 million pis sold in total 2018 Pi 3 Model B+ - 4c A53 BCM2837B0 1.4Ghz - 1Gb, wireless 802.11ac, gigabit ethernet (300Mbit/s) and bluetooth 4.2 - power over ethernet - 4 x USB2.0 ports - Microchip LAN7515 chip 2019 Over 15 million sold 2019 Pi 3 Model A+ with BCM2837b0 Cortex-A53 64-bit SoC @ 1.4 GHz with 512Mb LPDDR2, 1 usb2, 1 hdmi, 1 micro usb 5V 2A - no ethernet - 2019 Raspberry Pi Compute Module 3+ CM3+ - Broadcom BCM2837B0 1.2Ghz, Cortex-A53 (ARMv8) 64-bit SoC on DDR2 SODIMM mechanically compatible only factor - IO board required 1Gb DDR2 and 8GB, 16GB, 32GB or a Lite variant without eMMC 2021 Pi zero 2 (w or no W) RP3A0 quad 1GHz Cortex-A53 64bit BCM2710A1 512mB SDRam 2025 edaTEC CM0 ED-CM0NANA with additional dev board with quad 1Ghz A53 with 512Mb Raysan RAM, 2 USB2 and 10/100 ethernet - pico castellated edge 2019 Pi 4 Model B RPI4B - BCM2711B0T quad 64bit A72 1.5GHz, 4K VideoCore VI, AC wifi, Bluetooth 5.0, GbE Broadcom BCM54213PE (PHY ID 0x600d84a2), 2 micro hdmi decode up to 4K, USB-C 5.1V 3A power, 2xVLI VL805 USB 3, 2xUSB 2.0, 2GB 9LDWW D9WHZ or 4GB 9FDWW D9WHV, 8GB 0AA47 D9ZCL ddr4 ram 2020 Silent Pi 4 v1.2 upgrade with more USB-c psu support 2020 PI400 BCM2711C0T 1.8GHz 4Gb DDR4 inside keyboard, 5.1V 5A 27W usb-c psu, 2 micro hdmi, external ide style 40pin gpio, no audio port - 2020 Raspberry Pi Compute Module 4 BCM2711B0T on new 55mm x 40mm 2x100 pin form factor with extra breakout IO board CM4101000 1Gb RAM Lite SOM CM4102000 2GB RAM Lite CM4104000 4GB RAM Lite CM4004008-4GB-RAM 8GB-EMMC SOM System on Modules CM4104032 4GB RAM 32GB emmc CM4108000 8GB RAM Lite CM4008016 8GB RAM 16Gb eMMc 2021 Raspberry Pi SC0763 Compute Module 4S CM4S with ddr2 sodimm pinouts but not electrically the same with suitable IO board extra cost - CM4S01000 1GB RAM Lite CM4S01008 1GB RAM 8GB eMMC Flash CM4S02000 2GB RAM Lite CM4S04000 4GB RAM Lite CM4S08000 8GB RAM Lite 2021 Pi 4 v1.4 BCM2711B1 upgraded power regulator, to deal with 8gig of ram being more power hungry - 2023 Pi 5 v1.0 BCM2712 Quad A76 @2.4Ghz - VideoCore VII - no audio socket - dual 4k from mini hdmi - fan connector - 5.1V 5A psu 2024 Pi 5 2GB DDR4 version uses BCM2712D0 2024 Pi-500 with 8Gb LPDDR5 and membrane keyboard 2024 Pi 5 v1.1 2024 Raspberry Pi Compute Module 5 CM5 BCM2712 55mm x 40mm form factor with additional IO board CM5004000 04GB RAM 0GB eMMC Lite CM5008000 08GB RAM 0GB eMMC Lite CM5016000 16GB RAM 0GB eMMC Lite 2025 Pi-500+ with 256GB NVMe storage, 16GB LPDDR4 RAM, and Gateron KS-33 Low Profile Blue mechanical keyboard switches 2025 Pi5 1GB DDR4 announced 2022 PiOS linux goes 64bit 2024 Pi Trading IPO stockmarket stock exchange listing 2026 April and May Aros 64bit fixed, added AHI audio, VC4 gfx started, usb functions added to rom 2026 June and July Aros 64bit usb2otg started, dma.resource, sdio.resource, bwfm.device wifi added 2026 Late July daily 64bit Pi3 LE little endian builds start 2026 August Pi 4, 400, 5 and 500 DTBs added, expanding existing support and wifi for Pi4 and Pi5 2026 August Pi5 HAT+ nvme and HDMI, AHI RPiI2S added, Pi4 HVS5 video scaler started, 2026 2027 2028 Pi 6 </pre> {{BookCat}} doil57b5z7fu289gqno602wnzz2affo User talk:113.29.0.0/16 3 291086 4668244 2527717 2026-09-03T12:22:48Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668244 wikitext text/x-wiki <div style="background-color:#F9F9F9;{{Text default color}}; border:1px solid #A00; padding:5px;"> {| style="background-color:#F9F9F9;{{Text default color}}; margin: auto auto auto auto; border:none;" | [[File:Gnome-searchtool.svg|48px|link=]] | style="text-align:center" | '''[[m:CheckUser Policy|CheckUser]] evidence has determined that this [[w:IP address|IP address]], [[w:CIDR range|IP range]], or account has been used abusively. <br /> This address (or network) has been blocked to prevent further abuse.''' |} <hr /> In extreme cases, an entire network may be blocked to prevent an abusive user from continually changing their IP address in order to evade blocks or abusing multiple accounts. '''Administrators:''' [[Special:ListUsers/checkuser|CheckUsers]] are privy to confidential system logs not accessible by the public or [[Wikibooks:Administrators|administrators]] due to the Wikimedia Foundation's [[foundation:Privacy_policy|privacy policy]], and therefore '''[http://en.wikipedia.org/w/index.php?title=Wikipedia:Administrators%27_noticeboard&diff=101898276&oldid=101897313 must]''' be consulted before this block can be removed. '''Users:''' You may request {{tlx|unblock}} through the normal channels, however a [[Special:ListUsers/checkuser|CheckUser]] will review the block. {{ #if: | ---- '''Comments:''' {{{1}}} : | {{#if:|:&nbsp;{{{sig}}}}} }} </div><!-- Template:Checkuserblock --> {{#if:||[[Category:Checkuser blocked IP]]}} hgi9ahh5bruabvuhbu08uprpxvtmk5v User:Fabartus/temp2 2 294479 4668293 4648841 2026-09-03T13:30:01Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668293 wikitext text/x-wiki == Please verify conclusion == Please verify the tag region is obsolescent as I inferred from config.txt entries whilst fixing errors. I made an appropriate [http://online.ts2009.com/mediaWiki/index.php/Index_of_Tags_%26_Containers#qu-rz annotation here] which should be verified. Thanks // <b>[[User:Fabartus|Fra]]</b>[[User talk:Fabartus|<span style="color: green;">nkB</span>]] 12:18, 13 October 2013 (EST) : The "region" tag is obsolete, and hasn't been used for many years. It's been replaced by "category-region" which has a well-defined format. [[User:Jamesmoody|Jamesmoody]] ([[User talk:Jamesmoody|talk]]) 17:55, 14 October 2013 (EST) ---- :: Thanks James, I'd thought so, but even terms that have gone away need handled, this is but one among others you lot have tried to wish away. They are on the DLS, they are in the config files of stuff you have in JA's... in sum, '''they need handled ''on and by the wiki'''''. They should also be handled by your service pacs, installs, and hot fix updates, but here we are five years from the release of TS2009, and you programmers aren't cleaning up diddly locally, sanely, appropriately. ::Re: Your [http://online.ts2009.com/mediaWiki/index.php?title=%22mesh-table%22_container&action=history edit summary here] where you took out my attempt at conveying what a new asset builder seeing such should be thinking such data fields could or ought to contain. Turns out I'd asked two others to view that too and make fix ups with apropos descriptors and got an email on that request that you'd made an update before seeing your changes had occured. (Can we get email notifications turned on for this site... another Wiki Boolean setting, irrc.) :: Bottom line the whole site lacks 'ideas' connectivity of A to B to C because you lot have left stuff blank everywhere. Links are not thoughts, there needs be some glue words making complete thoughts to readers. Null data is null data and conveys ZERO about what the tag does or how it's used inside of or outside of a data structure (container) DEFAULT doesn't convey squat unless there is some understanding of what is being defined. Quoted null-strings are used (one might say overused) throughout the whole data documentation system. ::* If they don't communicate to me with my background they certainly won't be understood without a lot of head scratching by someone without nine years at university and a programing history back to the seventies. ::* We can set off defaults if we convert these things to real wiki-tables and they'll be easier then to edit in any event. (See {{Tl|pseudo-table}} which does style for exactly that conversion. With some parserFunctions, we can turn them into smart examples, where they can be expanded in a dependent page with a sampling of real-world values passed as parameters, shedding the benefits of understanding across the wiki. That is the table could display one way, then with a click box, display the other. I can see the defaults being useful for cutting and pasting boilerplate to a new asset's config file, or if one was trying to update. Further, on en.Wikipedia, there are tables which can be sorted by columns. There's a lot of power missing in the toolbox here. :: "Prompting" a recollection of what that definition or a phrase should be,... that makes the field name (tag in your weird nomenclature) make sense, is what I was aiming for. The Asterisks and other such 'text markup' aids can be employed to say that an empty string is default... after you let the kids know what it's for. Alternatively, present both a default table and one with explanations/prompts. If defaults are needed, they belong with the detailed examples after knowledge is built about what things mean/are used for. Many pages have "Categories" as a section title, which is pretty much a useless tag. Categories go after displayed text in the last section, whatever it is, will cover the same need. ''But an edit which keeps the spirit of the added communication'' would be more appreciated... I'm trying to translate what you staffers understand to something lay people sans computer training can understand. If I make an text edit at all, it's because something is UNCLEAR. :# That's a confirm then, trouble is it wasn't handled and does occur in a lot of older content. See [[Region]] and especially<br/> {{lts|TL-Obsolete-tag}}, plus [[KIND_Engine#epbrakes |this 'Epbrakes' section]] for handling obsolescent and '''obsolete container tags''' in all like cases. THIS is GOOD documentation, not mentioning a tag is confusing to people that have one on hand staring them in the face. They need a status on what it is or was and what to do with it now (e.g. "replace region tag lines with apropos category-region line in all versions after 2.4" Clear, concise, handled once, and ''respectful of the all the users time'' because it's leaving no questions. Saying "It's obsolete" means nothing without giving a solution too.). :# I'd '''like to see such ''inside containers structures''''' like 'epbrakes' handled inline as well, with a notation something like<br/> <code>'''REM epbrakes ***** Legacy tag, remove when updating context after version 2.8 *****''' </code><br/>or such like. Windwalkr seemed to give in on the point under the community pressure back in July, but until you lot issue hotfixes to TS2009 and up so versions 3.0 and up aren't flagged as errors they are as empty promises&mdash; as most things he's said on the forums. :# This bizarre 2008-think concept of "THIS WIKI IS ONLY" for TS2009 is safely dead since you lot are dependent on it for 2010 and TS12, as are we. It's time to fix up such legacy data names so their status is neither confusing nor never mentioned. Tagging them as well with the last version such were valid in would be the best thing, imho. ::# In between there are some important shades of grey -- one can write such that obsolescent items are clearly demarcated, which in my lexicon means version 3.x now generates a warning when said tag or practice formerly did not. Identifying when a tech change like that begins would be best. You lot can then actually update the documentation and announce important content-design-affecting changes in advance and actually adopt a practice of communicating effectively with the user community, instead of the current "Surprise! This is how we f***ed you over with this release, aren't you appreciative of all the extra time this change will take from you?" That's Windwalkr's way, isn't it? That has to stop. ::# Quotes without contents we programmers might understand as a null string. But we know of null strings. We should know that defining a null string allocates a certain default block of memory, or at least defines a null pointer, but Lay people just scratch their heads, and worse, don't get a context that will add to gaining an understanding. ::# THE PROBLEM (site wide): You claim it and think of it as a programmer, so your interest is biased. So you list what might be most useful to the savant&mdash; default values... without first defining what the values mean do or how they're used to and for the non-savant. This is very inconsiderate to those trying to learn, really disrespects their time and assumes endless spare time for them. ::# When defining the structure, a default value of null strings aren't integrated to each other when handled in sections down below&mdash; that table is now off screen, has no immediacy showing associations. Outside the table 'tag name' discussions about adjacent lines are in different sections, so have no clear relevance to illustrate their interaction or relationships. ::# On this side of the world we call that "Putting the cart in front of the horse". Show the defaults down the bottom if they are of value. Show the introductory material where the topic is being introduced. Get the message across, ''then the refinement''. Bottom line you lot have organized this looking at it from an informed point of view, not from the pov of someone ignorant of any of it. Yet this is what they have to use to gain that same knowledge. :* '''Obsolete''' in my lexicon means it '' '''{{'}}actually generates Errors{{'}}''' after a ''version-which-must-be-listed'' Version X.Y'' -- lingo you lot are very imprecise about&mdash;I'm interested in fixing your documentation, not continuing confusion points, so your elimination of the communication that the field defines a filespec is less than optimal. :** When writing documentation, think like a user, not a programmer. Better yet, ''think as a new user trying'' to get a handle on what all these confusing interrelationships are, and how they interact. :** Things like region and epbrakes are in things in JA files and on the DLS, hence must be mentioned and handled appropriately. Ignoring them is one of the worst mistakes N3V has made. It wouldn't work at all when and '''if it were obsolete'''. '[Such legacy & so ignored tags are '''{{'}}Obsolescent{{'}}''', at the worst when speaking ''any version of English''.] Benign except to byte-counts. Since the case which made me look for the tag definition wasn't seeing such a error complaint in V-3.3 it is by definition obsolescent, not obsolete. :** It is further, as I annotated something you want to discourage ongoing use of, so "(depreciated) " as I marked it. We can and should put such definition of terms in the header lead to that big list-table, so that table the terminology is consistent. :** Such assets can be cloned, and so the fact you lot haven't cleansed the JA files means you've not progressed anywhere near as much as you imagine in cleaning up assets. That's the price of cheating (Validating the common asset, updating the DLS with a kuid2 version, including that with TS2009 et. al. By my standards, or that of any large company you guys do slipshod work. Sorry. Just feel victimized over and over by your Company's past decisions!) :** As my son pointed out, you should do one release which does nothing but clean up embedded assets and the DLS with virtually no game engine changes except to better handle this legacy interfacing automatically as should have been done from the git-go. :* Why self-styled ace programmers (Sorry, Windwalkr's forum attitude, as it comes across) can't clean up most error causing situations is beyond understanding. I could have written filters in DOS 5 back in '93 to parse text files and fix many relationships. That PEV wrote PM2IM years ago and you haven't incorporated it automatically is damning. Chain a bunch of filters together in a batch file, and most manual edits you lot have forced on the users could be installed as a fixed version in the DLS. Apparently you can use TrainzUtil to do most of this... Your processing of the data differently means you should be able to translate stuff and generate apropos kuid2 versions... eliminate the old versions--with an alias, reference the new up to date 'In Spec' copy. If you'd begun that in 2009, it'd be done now--even really old routes could have been cleaned up with a few interns--at least so they don't generate errors. {{user-tip|1= ASIDE: [Just tried to add a notation about such terminology and your boss seems to have blocked me. How predictably childish. Good, maybe he'll actually fix some stuff people have complained about for months. <s>Have</s> Had no clue why, since there is no notice on my talk. [http://forums.auran.com/trainz/private.php?do=showpm&pmid=282895 found this] ... which I'll take as a badge of honor given the guilt I would feel in his shoes, the contemptable man-hours of aggravation his decisions have cost the user community warrant drawing and quartering.]}} ... continuing the conversation: :* That's one reason I'm surprised at your site's lack of sophistication. Having no help pages means no editor help or manual of style or clarity of how things are done. Clearly Tony Hilliam had [http://www.railroadsimulator.com/mission.php higher aspirations for the wiki], the mission statement expected a community effort. That one didn't get generated reflects some of the hostile climate your boss's acerbic edit summaries created, not to mention it was never initialized... ParserFunctions and lack of a common.css are rather damning evidence in support of that point. :* The best pages on the wiki are the that list article and the reprise of the CCP... neither of which had staff much involved, so far as I can see. The rest of it is a bunch of pages which stop before they say things clearly in the form of lists of things not tied together to make a clear picture. Your familiarity with the topic makes things seem more integrated than they are. Things are actually fairly confusing. Some sophomoric attempt to implement Parent-Child organization ala' a class in computer science just generates confusion on most pages... so the whole suffers clarity. It's not integrated with topic groups, in nav links, nor do you have the ability to do popups or alter the presentation. Given a decent Common.css and parserfunctions, that table you 'fixed in your mind' could present both versions... just click for one mode or the other. I can give you some examples of such on Wikipedia if you're interested. The parent-child thing doesn't work at all. Particularly not just as links without explanation. I provided one example of one of those fixed up somewhere. :* Personally, I consider any obsoleted or obsolescent legacy tag that is not just ignored by your software to be poor coding for compatibility, a point the user community got on Windwalkr about plainly in July. ''Just ignore the line and go on''. Issuing either a warning or an error is deliberately wasting a users time. It's insulting, and if you weren't trying to use source code as '''run-time-data''', very unnecessary. Elimination of remarks in config files is at least a top five contender for the stupidest thing N3V has done, failed to do, or tried to do. But then you lot were and have been treating source code as run time data... creating a conflict between user needs and convenience to yourselves. Treating source code as was convenient to the programmers, ignoring users needs. Besides being inefficient, not using optimized binary data storage is a really unprofessional mode in this day and age of big hard drives. Frankly I'm shocked at how this thing is configured. Use Binary records, preprocess as you like and build an data base which is not accessed in such an outdated manner. :: ASIDE, an conclusion: It's pretty clear you all have little experience working big company milieu's where premiums on communication are important. If you had experience working in a department of 30-40 interfacing regularly with two or three or four other departments of similar size, all having to interface with a corporate partner or three with similar large groups, and the government... you'd understand what I mean... That the 4-5 of you can turn around, poke your head over top the cubicle or walk down the hall and discuss what you mean... and never see the havoc that results from unclear relations and definitions is ... the state of affairs. The Wiki screams it, four years and incomplete is not a good thing to have on your resume. That you can leave this reference project unfinished is another. Not a slam, but the conclusion of several of us with reason to talk about you off line, so to speak. For months I defended Windwalkr and N3V against various rants. But now that experienced your bosses bedside manner first hand, I'm actually a tad sympathetic. I think he's war weary and needs a break from being the face on the forums. // Be well James. [[User:Fabartus|Fra]][[User talk:Fabartus|<span style="color: green;">nkB</span>]] 06:08, 18 October 2013 (UTC) g4ue1g0ndegjzi8j88lsx4xuf2ef1wa User:Danielravennest/papers/Mars21 2 296327 4668526 4666244 2026-09-04T09:08:14Z Danielravennest 13526 /* 1.0 - Problems of Past Space Programs */ 4668526 wikitext text/x-wiki {{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}} <div style="font-size:125%;font-family:'Georgia', serif;"> :'''Dani Eder,''' :''The Seed Factory Project,'' :''6485 Rivertown Rd, Fairburn, GA, 30213'' :''email: danielravennest@gmail.com'' :'''Aug 2026''' '''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set. <div class="nonumtoc">{{TOCright}}</div> =='''0.0 - Summary'''== &emsp; &emsp; National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort. &emsp;Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory. &emsp;Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment. &emsp;The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high. &emsp;It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea. =='''1.0 - Problems of Past Space Programs'''== &emsp; &emsp;Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology. :'''Outdated Assumptions''' &emsp;Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions: * It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface. * Because the number of missions is small and they are short, it is not economic to develop many local resources. * Most or all equipment and supplies are launched from Earth. * High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions. &emsp;Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other. :'''High Cost''' &emsp;Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings. &emsp;The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress. :'''Low Returns''' &emsp;In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them. &emsp;If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly. :'''Focus on the Moon and Mars''' &emsp;The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination. &emsp;The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay. &emsp;Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places. &emsp;A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth. =='''2.0 - New Knowledge and Technologies'''== &emsp; &emsp;Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment. ==='''2.1 - The Modern Solar System'''=== &emsp; &emsp;The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year. &emsp;Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System. &emsp;In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier. :'''Material Resources''' &emsp;'''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction. &emsp;This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth. &emsp;The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects. &emsp;Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating. [[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]] &emsp;91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found. &emsp;Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones. &emsp;'''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them. [[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]] &emsp;The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible. :'''Energy Resources''' &emsp;The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies. &emsp;It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space. &emsp;Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher. &emsp;In addition to solar, there are various energy sources that are more limited in scale and location. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment. :'''The Illusion of Scarcity''' &emsp;Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer. &emsp;The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area. &emsp;The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth. &emsp;A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used. ==='''2.2 - New Technologies'''=== &emsp; &emsp;For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology. :'''Seed Factories''' &emsp;Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient. &emsp;We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways: * Making parts for additional copies of current equipment. * Making new types of items not in the starter set, and * Making different versions of existing equipment (larger, more accurate, etc.). &emsp;While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally. &emsp;The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere. &emsp;When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better. :'''Locations and MakerNets''' &emsp;When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects. &emsp;The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost. &emsp;Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials. :'''Space Technologies''' &emsp;New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include: * '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past. * '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved. * '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology. &emsp;Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications. &emsp;Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer. &emsp; =='''3.0 - New Program Concept'''== &emsp; &emsp;For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods. &emsp;This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas. :<u>'''Goal 1 - Benefits on Earth'''</u> &emsp;Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult. &emsp;Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget. &emsp;The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same. &emsp;The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire. &emsp;As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate. &emsp;A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects. &emsp;Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel. :<u>'''Goal 2 - Benefits from Space'''</u> &emsp;Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this: * Access to materials on Earth is limited vertically because temperatures and pressure increase with depth. * Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy * Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment. * There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space. &emsp;So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment. &emsp;Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations. &emsp;Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed. &emsp;Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society. :<u>'''Program Advantages'''</u> &emsp;Our new approach has a number of advantages: * It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects. * Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable. * In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites. * A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems. * Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth. ==='''3.1 - Program Sequence'''=== &emsp; &emsp;Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this: * The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them. * We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise. * New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable. * We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches. [[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]] &emsp;In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...). [[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]] &emsp;Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below. ==='''3.2 - Phases 0 to 3: Earth Locations'''=== &emsp; &emsp;Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth. &emsp;Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves. &emsp;This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are: :&emsp;<u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed. :&emsp;<u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed. :&emsp;<u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products. :&emsp;<u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay. :&emsp;A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials. ==='''3.3 - Phases 4-6: Space Locations'''=== &emsp; &emsp;The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space. &emsp;At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet. &emsp;As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are: :&emsp;<u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant. :&emsp;The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun. :&emsp;<u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots. :&emsp;<u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for. &emsp; =='''4.0 - Seed Factory Technology'''== &emsp; &emsp;Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology. &emsp;'''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products. &emsp;Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways: * <u>Replication</u> - making copies of existing parts and equipment, * <u>Diversification</u> - making parts for new equipment not in the current set, * <u>Quality</u> - making items stronger, more accurate, or from different materials, and * <u>Scaling</u> - making different size parts (usually larger) than the current ones. &emsp;A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees. &emsp;The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory. :'''Self-Replication and Distributed Production''' &emsp;A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine. &emsp;Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring. &emsp;Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating. &emsp;Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products. :'''Operations and Functions''' &emsp;Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include: * <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment. * <u>Supply power</u> - this includes electricity, thermal heating, and other sources. * <u>Extract materials</u> - mining and harvesting raw materials. * <u>Process materials</u> - converting raw materials to usable inventory. * <u>Fabricate parts</u> - use inventory stock to produce finished parts. * <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed. * <u>Assemble elements</u> - combine finished parts and materials to produce completed products. * <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production. &emsp;Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms. &emsp;Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally. &emsp;We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely. &emsp; &emsp; =='''5.0 - Phase 0: Research and Development (R&D)'''== &emsp; &emsp;The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents. &emsp;A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations. :'''R&D Goals''' &emsp;Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills. &emsp;Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space. :'''Production by R&D Phase''' &emsp;Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use. &emsp;Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs. &emsp;Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases. :'''Sharing Our Results''' &emsp;We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally. &emsp;The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them. :'''R&D Tasks and Projects''' &emsp;The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed. &emsp;New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process. &emsp;The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks. &emsp;Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge. &emsp; =='''6.0 - Moderate Locations'''== &emsp; &emsp;Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences. &emsp;Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial. ==='''6.1 - Phase 1: Starter Locations and Network'''=== &emsp; :'''Goals''' &emsp;The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places. &emsp;Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site. :'''Starting Points''' &emsp;Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed. &emsp;Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged. &emsp;Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty. &emsp;Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones. :'''Later Improvements''' &emsp;Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food. &emsp;The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built. &emsp;Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions. ==='''6.2 - Phase 2A: Distributed Locations'''=== &emsp; :'''Goals''' &emsp;The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation. :'''Evolution''' &emsp;Phase 1 locations in general would accumulate skills and equipment. Some sites will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets. &emsp;When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places. &emsp;Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate. :'''Ownership''' &emsp;In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills. &emsp;When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently. &emsp;By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners. ==='''6.3 - Phase 2B: Industrial Locations'''=== &emsp; :'''Goals''' &emsp;The main goal of this phase is to reach the most efficient production capacity by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2. :'''Growth and Specialization''' &emsp;Industrial nodes can evolve from distributed small business or commercial nodes by continuing self-improvement and growth. They can also be built as new nodes of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding. &emsp;Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big location that can satisfy all of them. &emsp;The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase. &emsp;A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products. &emsp;The overall network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed. &emsp;Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation. =='''7.0 - Other Earth Locations'''== &emsp; :'''Goal''' &emsp;The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress. :'''Method''' &emsp;One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials. :'''New Locations''' &emsp;Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started. &emsp;Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range. &emsp;If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people. &emsp;We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects. &emsp;The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity. &emsp;That capacity then supplies products and services are for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth. ==='''7.1 - Phase 3A: Difficult Earth Locations'''=== &emsp; &emsp;We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are: &emsp;'''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth. &emsp;'''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay. &emsp;'''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range. &emsp;'''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters &emsp;'''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are. &emsp;Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply. &emsp;Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere. &emsp;'''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items. &emsp;'''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year. &emsp;A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population. &emsp;Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs. &emsp;'''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition. &emsp;On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance. &emsp;'''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days. &emsp;'''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services. &emsp;Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations. &emsp;'''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation. &emsp;On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits. &emsp;Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with. ==='''7.2 - Phase 3B: Extreme Earth Locations'''=== &emsp; &emsp;We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are: &emsp;'''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts. &emsp;'''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests. &emsp;'''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground. &emsp;'''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock. &emsp;'''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty. &emsp;'''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur. &emsp;'''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically. &emsp;'''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable. &emsp;'''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation. &emsp;'''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations. &emsp;'''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used. =='''8.0 - Phase 4: Orbital Locations'''== &emsp; [[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]] :'''Goals''' &emsp;The main goals of the later phases are using space to bring benefits to Earth, and to help with some long-term problems that can't be handled any other way. &emsp;Figure 8.0-1 is an early concept for a rotating space station, made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since solar cells were not well developed at the time. We show it as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 70 years in the future. Despite that, we have to start somewhere and then make updates as needed. :'''Approach''' &emsp;Sections 8, 9, and 10 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from. The local environments are also different on and around these bodies. &emsp;We expect the various sub-phases to have different starting times, but overlap and continue in parallel once started. Phase 6 (Interstellar) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work. :'''Current and Near-Term Space Industry''' &emsp;Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According to UN records there were over 8200 satellites orbiting the Earth at the start of 2022. Of these, about 4850 were active. There are a smaller number of spacecraft and other items that have been sent to the Moon and beyond, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving. &emsp;'''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $386 billion as of 2021, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs. &emsp;Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and well over a thousand '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level. &emsp;Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight. &emsp;Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. This adds to the cost of operating in space. Refueling, maintenance, and repair of equipment in space is very limited. New production, upgrades, and recycling is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism. :'''Long-Term Sustainability''' &emsp;As of 2021 fossil fuels supplied about 77% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it. &emsp;These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is. &emsp;Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both. &emsp;At the same time, the world's population is growing, and not everyone has the benefits of full development. Such development demands even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it does not reduce it to zero. :'''Civilization-Level Risks''' &emsp;Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release. &emsp;Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce the risks. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent. &emsp;There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery. ==='''8.1 - Using Space to Solve Earth's Problems'''=== &emsp; &emsp;There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores. &emsp;There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy to equipment mass ratio is roughly 50 times higher. &emsp;There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above. :'''Lowering Space Operations Cost''' &emsp;Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement. &emsp;There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need. &emsp;A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development. &emsp;Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down. &emsp;More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost". :'''Space Development Process''' &emsp;Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock. &emsp;Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence. &emsp;In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions. &emsp;Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost. &emsp;Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it. :'''General Space Environment Features''' &emsp;Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce. &emsp;The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity. &emsp;The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''. * '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature. * '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 AU, where temperatures are low enough for ice to be stable in a vacuum. * '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres. * '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets. * '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy. :&emsp;Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors. * '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure. * '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset. :&emsp;Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks. * '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet. * '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades. * '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years. * '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg. ==='''8.2 - Phase 4A: Low Orbit Locations'''=== &emsp; &emsp;Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started. &emsp;We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon. :'''Low Orbit Features''' &emsp;Earth orbits form a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''. &emsp;Objects in low orbits are in the Earth's shadow about 22-40% of the time, reduceing available energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay. &emsp;The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbits and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially. &emsp;Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations. :'''Economic Uses''' &emsp;We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the Space Station and Hubble Telescope, and national security. &emsp;Future uses may include tourism, orbital assembly and maintenance, and payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others. &emsp;We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position. :'''Transport from Earth''' &emsp;Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites. &emsp;Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities. [[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]] &emsp;'''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices. &emsp;A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in km rather than meters lower g-forces and operating pressures. But they are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on the mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch. &emsp;Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets. &emsp;The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth. &emsp;'''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option. &emsp;High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense. :'''Mining and Production''' &emsp;Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there. &emsp;There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks. &emsp;When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end. &emsp;A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse. &emsp;Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere. ==='''8.3 - Phase 4B: High Orbit Locations'''=== &emsp; :'''High Orbit Features''' &emsp;We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as you increase distance. &emsp;The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations. &emsp;High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold Cosmic Background, but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy. &emsp;Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies. :'''Economic Uses''' &emsp;One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts. &emsp;Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity and the Moon's orbit not being circular or in the same plane as the Earth and Sun cause some motion around the points. &emsp;Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can include supplying fuel and other supplies from space sources back to low orbit and to early interplanetary locations. These and other possible future activities depend on bringing costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels. &emsp;There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Large solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts. &emsp;The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 250 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources can make civilization sustainable for a very long time. :'''Transport from Other Orbits''' &emsp;Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then more chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years. &emsp;Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://www.nrel.gov/pv/cell-efficiency.html NREL Efficiency Chart]'''). The engines are low thrust, which would expose people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, the penalty for less efficient transport can be reduced. &emsp;Bulk materials mined from NEOs (Section 2.1) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed. &emsp;The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all of them would supply the widest range of raw materials to make the widest range of products. :'''High Orbit Production''' &emsp;Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, and active refrigeration if needed. &emsp;A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations. &emsp;Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth. &emsp;Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies. &emsp;Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, a small amount of carbon added to make a steel alloy, and then cast into basic shapes. &emsp;Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials. &emsp;Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction. &emsp;'''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. They are used in all kinds of industrial processes such as furnaces and cooling systems for thermal processing of materials. &emsp;In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing them is easier than trying to make them. :'''Living in High Orbit''' &emsp;After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities. &emsp;Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels. &emsp;Layered growth adds new pressure shells over compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved outwards to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed. ==='''8.4 - Phase 4C: Inner Interplanetary Locations'''=== &emsp; :'''Inner Interplanetary Features''' &emsp;These are orbits detached from the Earth's dominant gravity and go around the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun to 1.8 AU. This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, Earth, and Mars, and orbits around them. &emsp;Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time. &emsp;Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side. &emsp;As noted in section 2.1, there are nearly 32,000 known NEOs as of April 2023, and the number is currently increasing by 10% a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large. &emsp;Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions. &emsp;There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us. :'''Economic Uses''' &emsp;There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces. &emsp;Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally. :'''Inner Interplanetary Transport''' &emsp;The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion. &emsp;'''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit. &emsp;Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region. &emsp;Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal. &emsp;Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space. :'''Inner Interplanetary Production''' &emsp;Global primary energy consumption on Earth was 18 TeraWatts in 2021. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits. &emsp;Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it. &emsp;The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with. &emsp;If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain civilization. :'''Living Beyond Earth Orbit''' &emsp;Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time. &emsp;It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the it stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy. ==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''=== &emsp; &emsp;Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials. :'''Mid-Interplanetary Features''' [[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]] &emsp;This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2023 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.18 million other Main Belt asteroids, over 5600 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 12,500 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. It does not include Jupiter itself and the region within 20 million km of the planet (Section 9.4). &emsp;There are around 450 known comets in the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of it. &emsp;Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years on minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including a relay to avoid a direct path through the Sun. &emsp;The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun. :'''Economic Uses''' &emsp;This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable mining and transport to earlier locations as early activities. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization. :'''Mid-Interplanetary Transport''' &emsp;The same transport methods can be used in this region as for the inner interplanetary region. The main difference is adding reflectors to solar panels to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, they also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency. :'''Mid-Interplanetary Production''' &emsp;The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels benefit from reflectors to increase the light intensity. Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials. &emsp;Asteroids are covered in a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area or the whole asteroid can be covered to contain loose material. &emsp;More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs to factories for later production steps. For larger operations, a shell can surround the whole asteroid, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter. ==='''8.6 - Phase 4E: Outer Interplanetary Locations'''=== &emsp; &emsp;This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials. :'''Outer Interplanetary Features''' &emsp;Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2023 there are over 500 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also thousands of known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 3800 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered. &emsp;Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from 160 to 50K for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours. &emsp;The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the smaller ones 'minor planets'. :'''Outer Interplanetary Activities''' &emsp;This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is undertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them. &emsp;Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, they can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced. &emsp;As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region. &emsp;We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule. &emsp;If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop. ==='''8.7 - Phase 4F: Distant Orbit Locations'''=== &emsp; &emsp;The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'. :'''Distant Orbit Features''' &emsp;Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's dominance at about 100,000 AU. As of 2023 there are about 1200 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a similar number of '''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets. &emsp;A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region. &emsp;Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit. &emsp;Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years. :'''Distant Orbit Activities''' &emsp;Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens. &emsp;To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative at present. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must remain speculative at present. =='''9.0 - Planetary System Locations'''== &emsp; &emsp;The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative objects in the orbital regions, and third is the diversity of conditions found on and around the planets. &emsp;Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach them carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time. ==='''9.1 - Phase 5A: Lunar Locations'''=== &emsp; &emsp;Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our technical approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets. :'''Lunar Features''' &emsp;The Lunar region includes the Moon itself, and orbits with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field (Figure 9.1-1). The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it ([https://link.springer.com/article/10.1134/S0038094617070061 ''Gordienko, 2018'']). &emsp;The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location. &emsp;Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increase the total exposed surface area. [[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]] &emsp;Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same. &emsp;The Moon is tidally locked to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day. &emsp;Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth. &emsp;The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements. &emsp;The Moon is too small and warm to keep an atmosphere. With nothing to stop them, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface. :'''Economic Uses''' &emsp;The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits. &emsp;Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without using heavy equipment and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment. &emsp;Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space. :'''Lunar Transport''' &emsp;Early landings on the Moon would not have the support of much infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability. &emsp;Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location. &emsp;Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls. &emsp;If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency. &emsp;Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can supply shielding. With these people can live comfortably and safely. They are close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times. :'''Lunar Production''' &emsp;The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves. &emsp;Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease. &emsp;Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful. &emsp;Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore. &emsp;Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night. :'''Living in Lunar Locations''' &emsp;Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time. &emsp;We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control. &emsp;The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best. ==='''9.2 - Phase 5B: Mars Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between. :'''Mars Features''' &emsp;The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin. &emsp;Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding. &emsp;Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way. &emsp;The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition. [[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]] &emsp;The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass. &emsp;Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps. :'''Economic Uses''' &emsp;Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids. &emsp;Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available. &emsp;As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth. :'''Mars Transport''' &emsp;In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit. &emsp;Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more. &emsp;Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs. &emsp;When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface. &emsp;Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems. &emsp;Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred. :'''Mars Production''' &emsp;Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries. &emsp;Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first. :'''Living in Mars Locations''' &emsp;Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats. &emsp;'''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier. &emsp;An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection. ==='''9.3 - Phase 5C: Venus and Mercury Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with. :'''Venus and Mercury Features''' &emsp;The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU. &emsp;Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes. &emsp;Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively. &emsp;The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters :'''Economic Uses''' &emsp;Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed. &emsp;Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry. &emsp;It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun. :'''Venus and Mercury Transport''' &emsp;Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow. &emsp;For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines. :'''Venus and Mercury Production''' &emsp;Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away. &emsp;Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time. :'''Living at Venus and Mercury''' &emsp;Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term. ==='''9.4 - Phase 5D: Jupiter System Locations'''=== &emsp; &emsp;Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury. :'''Jupiter System Features''' &emsp;The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system. &emsp;Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations. &emsp;Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit. &emsp;The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth. &emsp;Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side. :'''Economic Uses''' &emsp;Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges. &emsp;The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility. :'''Jupiter System Transport''' &emsp;Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts. :'''Jupiter System Production''' &emsp;Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat. :'''Living in the Jupiter System''' &emsp;Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it. ==='''9.5 - Phase 5E: Outer Giant Locations'''=== &emsp; &emsp;The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around. :'''Outer Giant Features''' &emsp;The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars). &emsp;Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby. &emsp;Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips. &emsp;Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System. &emsp;Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible. :'''Economic Uses''' &emsp;The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now. &emsp;Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research. &emsp;If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time. :'''Outer Giant Transport''' &emsp;Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical. &emsp;Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be. :'''Outer Giant Production and Living''' &emsp;We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question. =='''10.0 - Interstellar Locations'''== &emsp; &emsp;The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance. &emsp;Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order. ==='''10.1 - Phase 6A: Interstellar Space Locations'''=== &emsp; :'''Interstellar Features''' &emsp;We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun. &emsp;Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average. &emsp;The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System. &emsp;The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is. :'''Economic Uses''' &emsp;We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities. :'''Interstellar Transport''' &emsp;Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development. &emsp;Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue. &emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now. :'''Interstellar Production''' &emsp;We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades. ==='''10.2 - Phase 6B: Stellar Locations'''=== &emsp; :'''Stellar System Features''' &emsp;We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them. &emsp;Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits. &emsp;The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks. :'''Economic Uses''' &emsp;Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars. :'''Exostellar Transport''' &emsp;Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources. :'''Exostellar Production''' &emsp;As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available. </div> 86ljqq50wj1b424sk38217nbyep4pah 4668529 4668526 2026-09-04T09:13:43Z Danielravennest 13526 /* 2.1 - The Modern Solar System */ 4668529 wikitext text/x-wiki {{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}} <div style="font-size:125%;font-family:'Georgia', serif;"> :'''Dani Eder,''' :''The Seed Factory Project,'' :''6485 Rivertown Rd, Fairburn, GA, 30213'' :''email: danielravennest@gmail.com'' :'''Aug 2026''' '''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set. <div class="nonumtoc">{{TOCright}}</div> =='''0.0 - Summary'''== &emsp; &emsp; National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort. &emsp;Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory. &emsp;Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment. &emsp;The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high. &emsp;It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea. =='''1.0 - Problems of Past Space Programs'''== &emsp; &emsp;Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology. :'''Outdated Assumptions''' &emsp;Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions: * It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface. * Because the number of missions is small and they are short, it is not economic to develop many local resources. * Most or all equipment and supplies are launched from Earth. * High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions. &emsp;Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other. :'''High Cost''' &emsp;Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings. &emsp;The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress. :'''Low Returns''' &emsp;In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them. &emsp;If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly. :'''Focus on the Moon and Mars''' &emsp;The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination. &emsp;The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay. &emsp;Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places. &emsp;A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth. =='''2.0 - New Knowledge and Technologies'''== &emsp; &emsp;Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment. ==='''2.1 - The Modern Solar System'''=== &emsp; &emsp;The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year. &emsp;Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System. &emsp;In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier. :'''Material Resources''' &emsp;'''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction. &emsp;This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth. &emsp;The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects. &emsp;Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating. [[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]] &emsp;91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found. &emsp;Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones. &emsp;'''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them. [[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]] &emsp;The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible. :'''Energy Resources''' &emsp;The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies. &emsp;It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space. &emsp;Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher. &emsp;In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment. :'''The Illusion of Scarcity''' &emsp;Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer. &emsp;The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area. &emsp;The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth. &emsp;A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used. ==='''2.2 - New Technologies'''=== &emsp; &emsp;For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology. :'''Seed Factories''' &emsp;Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient. &emsp;We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways: * Making parts for additional copies of current equipment. * Making new types of items not in the starter set, and * Making different versions of existing equipment (larger, more accurate, etc.). &emsp;While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally. &emsp;The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere. &emsp;When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better. :'''Locations and MakerNets''' &emsp;When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects. &emsp;The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost. &emsp;Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials. :'''Space Technologies''' &emsp;New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include: * '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past. * '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved. * '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology. &emsp;Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications. &emsp;Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer. &emsp; =='''3.0 - New Program Concept'''== &emsp; &emsp;For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods. &emsp;This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas. :<u>'''Goal 1 - Benefits on Earth'''</u> &emsp;Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult. &emsp;Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget. &emsp;The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same. &emsp;The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire. &emsp;As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate. &emsp;A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects. &emsp;Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel. :<u>'''Goal 2 - Benefits from Space'''</u> &emsp;Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this: * Access to materials on Earth is limited vertically because temperatures and pressure increase with depth. * Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy * Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment. * There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space. &emsp;So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment. &emsp;Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations. &emsp;Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed. &emsp;Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society. :<u>'''Program Advantages'''</u> &emsp;Our new approach has a number of advantages: * It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects. * Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable. * In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites. * A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems. * Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth. ==='''3.1 - Program Sequence'''=== &emsp; &emsp;Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this: * The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them. * We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise. * New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable. * We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches. [[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]] &emsp;In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...). [[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]] &emsp;Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below. ==='''3.2 - Phases 0 to 3: Earth Locations'''=== &emsp; &emsp;Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth. &emsp;Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves. &emsp;This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are: :&emsp;<u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed. :&emsp;<u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed. :&emsp;<u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products. :&emsp;<u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay. :&emsp;A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials. ==='''3.3 - Phases 4-6: Space Locations'''=== &emsp; &emsp;The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space. &emsp;At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet. &emsp;As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are: :&emsp;<u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant. :&emsp;The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun. :&emsp;<u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots. :&emsp;<u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for. &emsp; =='''4.0 - Seed Factory Technology'''== &emsp; &emsp;Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology. &emsp;'''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products. &emsp;Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways: * <u>Replication</u> - making copies of existing parts and equipment, * <u>Diversification</u> - making parts for new equipment not in the current set, * <u>Quality</u> - making items stronger, more accurate, or from different materials, and * <u>Scaling</u> - making different size parts (usually larger) than the current ones. &emsp;A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees. &emsp;The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory. :'''Self-Replication and Distributed Production''' &emsp;A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine. &emsp;Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring. &emsp;Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating. &emsp;Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products. :'''Operations and Functions''' &emsp;Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include: * <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment. * <u>Supply power</u> - this includes electricity, thermal heating, and other sources. * <u>Extract materials</u> - mining and harvesting raw materials. * <u>Process materials</u> - converting raw materials to usable inventory. * <u>Fabricate parts</u> - use inventory stock to produce finished parts. * <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed. * <u>Assemble elements</u> - combine finished parts and materials to produce completed products. * <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production. &emsp;Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms. &emsp;Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally. &emsp;We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely. &emsp; &emsp; =='''5.0 - Phase 0: Research and Development (R&D)'''== &emsp; &emsp;The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents. &emsp;A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations. :'''R&D Goals''' &emsp;Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills. &emsp;Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space. :'''Production by R&D Phase''' &emsp;Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use. &emsp;Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs. &emsp;Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases. :'''Sharing Our Results''' &emsp;We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally. &emsp;The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them. :'''R&D Tasks and Projects''' &emsp;The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed. &emsp;New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process. &emsp;The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks. &emsp;Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge. &emsp; =='''6.0 - Moderate Locations'''== &emsp; &emsp;Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences. &emsp;Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial. ==='''6.1 - Phase 1: Starter Locations and Network'''=== &emsp; :'''Goals''' &emsp;The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places. &emsp;Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site. :'''Starting Points''' &emsp;Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed. &emsp;Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged. &emsp;Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty. &emsp;Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones. :'''Later Improvements''' &emsp;Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food. &emsp;The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built. &emsp;Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions. ==='''6.2 - Phase 2A: Distributed Locations'''=== &emsp; :'''Goals''' &emsp;The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation. :'''Evolution''' &emsp;Phase 1 locations in general would accumulate skills and equipment. Some sites will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets. &emsp;When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places. &emsp;Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate. :'''Ownership''' &emsp;In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills. &emsp;When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently. &emsp;By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners. ==='''6.3 - Phase 2B: Industrial Locations'''=== &emsp; :'''Goals''' &emsp;The main goal of this phase is to reach the most efficient production capacity by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2. :'''Growth and Specialization''' &emsp;Industrial nodes can evolve from distributed small business or commercial nodes by continuing self-improvement and growth. They can also be built as new nodes of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding. &emsp;Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big location that can satisfy all of them. &emsp;The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase. &emsp;A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products. &emsp;The overall network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed. &emsp;Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation. =='''7.0 - Other Earth Locations'''== &emsp; :'''Goal''' &emsp;The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress. :'''Method''' &emsp;One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials. :'''New Locations''' &emsp;Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started. &emsp;Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range. &emsp;If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people. &emsp;We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects. &emsp;The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity. &emsp;That capacity then supplies products and services are for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth. ==='''7.1 - Phase 3A: Difficult Earth Locations'''=== &emsp; &emsp;We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are: &emsp;'''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth. &emsp;'''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay. &emsp;'''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range. &emsp;'''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters &emsp;'''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are. &emsp;Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply. &emsp;Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere. &emsp;'''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items. &emsp;'''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year. &emsp;A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population. &emsp;Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs. &emsp;'''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition. &emsp;On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance. &emsp;'''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days. &emsp;'''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services. &emsp;Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations. &emsp;'''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation. &emsp;On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits. &emsp;Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with. ==='''7.2 - Phase 3B: Extreme Earth Locations'''=== &emsp; &emsp;We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are: &emsp;'''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts. &emsp;'''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests. &emsp;'''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground. &emsp;'''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock. &emsp;'''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty. &emsp;'''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur. &emsp;'''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically. &emsp;'''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable. &emsp;'''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation. &emsp;'''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations. &emsp;'''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used. =='''8.0 - Phase 4: Orbital Locations'''== &emsp; [[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]] :'''Goals''' &emsp;The main goals of the later phases are using space to bring benefits to Earth, and to help with some long-term problems that can't be handled any other way. &emsp;Figure 8.0-1 is an early concept for a rotating space station, made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since solar cells were not well developed at the time. We show it as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 70 years in the future. Despite that, we have to start somewhere and then make updates as needed. :'''Approach''' &emsp;Sections 8, 9, and 10 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from. The local environments are also different on and around these bodies. &emsp;We expect the various sub-phases to have different starting times, but overlap and continue in parallel once started. Phase 6 (Interstellar) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work. :'''Current and Near-Term Space Industry''' &emsp;Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According to UN records there were over 8200 satellites orbiting the Earth at the start of 2022. Of these, about 4850 were active. There are a smaller number of spacecraft and other items that have been sent to the Moon and beyond, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving. &emsp;'''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $386 billion as of 2021, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs. &emsp;Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and well over a thousand '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level. &emsp;Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight. &emsp;Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. This adds to the cost of operating in space. Refueling, maintenance, and repair of equipment in space is very limited. New production, upgrades, and recycling is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism. :'''Long-Term Sustainability''' &emsp;As of 2021 fossil fuels supplied about 77% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it. &emsp;These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is. &emsp;Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both. &emsp;At the same time, the world's population is growing, and not everyone has the benefits of full development. Such development demands even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it does not reduce it to zero. :'''Civilization-Level Risks''' &emsp;Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release. &emsp;Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce the risks. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent. &emsp;There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery. ==='''8.1 - Using Space to Solve Earth's Problems'''=== &emsp; &emsp;There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores. &emsp;There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy to equipment mass ratio is roughly 50 times higher. &emsp;There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above. :'''Lowering Space Operations Cost''' &emsp;Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement. &emsp;There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need. &emsp;A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development. &emsp;Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down. &emsp;More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost". :'''Space Development Process''' &emsp;Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock. &emsp;Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence. &emsp;In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions. &emsp;Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost. &emsp;Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it. :'''General Space Environment Features''' &emsp;Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce. &emsp;The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity. &emsp;The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''. * '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature. * '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 AU, where temperatures are low enough for ice to be stable in a vacuum. * '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres. * '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets. * '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy. :&emsp;Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors. * '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure. * '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset. :&emsp;Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks. * '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet. * '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades. * '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years. * '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg. ==='''8.2 - Phase 4A: Low Orbit Locations'''=== &emsp; &emsp;Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started. &emsp;We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon. :'''Low Orbit Features''' &emsp;Earth orbits form a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''. &emsp;Objects in low orbits are in the Earth's shadow about 22-40% of the time, reduceing available energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay. &emsp;The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbits and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially. &emsp;Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations. :'''Economic Uses''' &emsp;We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the Space Station and Hubble Telescope, and national security. &emsp;Future uses may include tourism, orbital assembly and maintenance, and payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others. &emsp;We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position. :'''Transport from Earth''' &emsp;Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites. &emsp;Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities. [[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]] &emsp;'''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices. &emsp;A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in km rather than meters lower g-forces and operating pressures. But they are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on the mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch. &emsp;Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets. &emsp;The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth. &emsp;'''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option. &emsp;High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense. :'''Mining and Production''' &emsp;Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there. &emsp;There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks. &emsp;When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end. &emsp;A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse. &emsp;Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere. ==='''8.3 - Phase 4B: High Orbit Locations'''=== &emsp; :'''High Orbit Features''' &emsp;We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as you increase distance. &emsp;The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations. &emsp;High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold Cosmic Background, but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy. &emsp;Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies. :'''Economic Uses''' &emsp;One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts. &emsp;Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity and the Moon's orbit not being circular or in the same plane as the Earth and Sun cause some motion around the points. &emsp;Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can include supplying fuel and other supplies from space sources back to low orbit and to early interplanetary locations. These and other possible future activities depend on bringing costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels. &emsp;There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Large solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts. &emsp;The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 250 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources can make civilization sustainable for a very long time. :'''Transport from Other Orbits''' &emsp;Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then more chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years. &emsp;Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://www.nrel.gov/pv/cell-efficiency.html NREL Efficiency Chart]'''). The engines are low thrust, which would expose people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, the penalty for less efficient transport can be reduced. &emsp;Bulk materials mined from NEOs (Section 2.1) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed. &emsp;The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all of them would supply the widest range of raw materials to make the widest range of products. :'''High Orbit Production''' &emsp;Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, and active refrigeration if needed. &emsp;A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations. &emsp;Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth. &emsp;Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies. &emsp;Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, a small amount of carbon added to make a steel alloy, and then cast into basic shapes. &emsp;Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials. &emsp;Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction. &emsp;'''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. They are used in all kinds of industrial processes such as furnaces and cooling systems for thermal processing of materials. &emsp;In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing them is easier than trying to make them. :'''Living in High Orbit''' &emsp;After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities. &emsp;Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels. &emsp;Layered growth adds new pressure shells over compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved outwards to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed. ==='''8.4 - Phase 4C: Inner Interplanetary Locations'''=== &emsp; :'''Inner Interplanetary Features''' &emsp;These are orbits detached from the Earth's dominant gravity and go around the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun to 1.8 AU. This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, Earth, and Mars, and orbits around them. &emsp;Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time. &emsp;Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side. &emsp;As noted in section 2.1, there are nearly 32,000 known NEOs as of April 2023, and the number is currently increasing by 10% a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large. &emsp;Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions. &emsp;There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us. :'''Economic Uses''' &emsp;There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces. &emsp;Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally. :'''Inner Interplanetary Transport''' &emsp;The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion. &emsp;'''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit. &emsp;Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region. &emsp;Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal. &emsp;Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space. :'''Inner Interplanetary Production''' &emsp;Global primary energy consumption on Earth was 18 TeraWatts in 2021. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits. &emsp;Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it. &emsp;The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with. &emsp;If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain civilization. :'''Living Beyond Earth Orbit''' &emsp;Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time. &emsp;It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the it stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy. ==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''=== &emsp; &emsp;Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials. :'''Mid-Interplanetary Features''' [[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]] &emsp;This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2023 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.18 million other Main Belt asteroids, over 5600 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 12,500 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. It does not include Jupiter itself and the region within 20 million km of the planet (Section 9.4). &emsp;There are around 450 known comets in the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of it. &emsp;Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years on minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including a relay to avoid a direct path through the Sun. &emsp;The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun. :'''Economic Uses''' &emsp;This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable mining and transport to earlier locations as early activities. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization. :'''Mid-Interplanetary Transport''' &emsp;The same transport methods can be used in this region as for the inner interplanetary region. The main difference is adding reflectors to solar panels to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, they also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency. :'''Mid-Interplanetary Production''' &emsp;The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels benefit from reflectors to increase the light intensity. Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials. &emsp;Asteroids are covered in a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area or the whole asteroid can be covered to contain loose material. &emsp;More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs to factories for later production steps. For larger operations, a shell can surround the whole asteroid, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter. ==='''8.6 - Phase 4E: Outer Interplanetary Locations'''=== &emsp; &emsp;This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials. :'''Outer Interplanetary Features''' &emsp;Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2023 there are over 500 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also thousands of known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 3800 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered. &emsp;Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from 160 to 50K for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours. &emsp;The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the smaller ones 'minor planets'. :'''Outer Interplanetary Activities''' &emsp;This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is undertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them. &emsp;Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, they can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced. &emsp;As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region. &emsp;We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule. &emsp;If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop. ==='''8.7 - Phase 4F: Distant Orbit Locations'''=== &emsp; &emsp;The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'. :'''Distant Orbit Features''' &emsp;Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's dominance at about 100,000 AU. As of 2023 there are about 1200 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a similar number of '''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets. &emsp;A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region. &emsp;Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit. &emsp;Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years. :'''Distant Orbit Activities''' &emsp;Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens. &emsp;To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative at present. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must remain speculative at present. =='''9.0 - Planetary System Locations'''== &emsp; &emsp;The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative objects in the orbital regions, and third is the diversity of conditions found on and around the planets. &emsp;Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach them carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time. ==='''9.1 - Phase 5A: Lunar Locations'''=== &emsp; &emsp;Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our technical approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets. :'''Lunar Features''' &emsp;The Lunar region includes the Moon itself, and orbits with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field (Figure 9.1-1). The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it ([https://link.springer.com/article/10.1134/S0038094617070061 ''Gordienko, 2018'']). &emsp;The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location. &emsp;Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increase the total exposed surface area. [[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]] &emsp;Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same. &emsp;The Moon is tidally locked to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day. &emsp;Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth. &emsp;The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements. &emsp;The Moon is too small and warm to keep an atmosphere. With nothing to stop them, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface. :'''Economic Uses''' &emsp;The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits. &emsp;Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without using heavy equipment and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment. &emsp;Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space. :'''Lunar Transport''' &emsp;Early landings on the Moon would not have the support of much infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability. &emsp;Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location. &emsp;Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls. &emsp;If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency. &emsp;Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can supply shielding. With these people can live comfortably and safely. They are close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times. :'''Lunar Production''' &emsp;The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves. &emsp;Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease. &emsp;Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful. &emsp;Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore. &emsp;Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night. :'''Living in Lunar Locations''' &emsp;Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time. &emsp;We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control. &emsp;The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best. ==='''9.2 - Phase 5B: Mars Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between. :'''Mars Features''' &emsp;The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin. &emsp;Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding. &emsp;Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way. &emsp;The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition. [[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]] &emsp;The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass. &emsp;Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps. :'''Economic Uses''' &emsp;Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids. &emsp;Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available. &emsp;As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth. :'''Mars Transport''' &emsp;In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit. &emsp;Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more. &emsp;Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs. &emsp;When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface. &emsp;Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems. &emsp;Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred. :'''Mars Production''' &emsp;Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries. &emsp;Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first. :'''Living in Mars Locations''' &emsp;Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats. &emsp;'''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier. &emsp;An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection. ==='''9.3 - Phase 5C: Venus and Mercury Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with. :'''Venus and Mercury Features''' &emsp;The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU. &emsp;Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes. &emsp;Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively. &emsp;The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters :'''Economic Uses''' &emsp;Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed. &emsp;Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry. &emsp;It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun. :'''Venus and Mercury Transport''' &emsp;Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow. &emsp;For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines. :'''Venus and Mercury Production''' &emsp;Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away. &emsp;Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time. :'''Living at Venus and Mercury''' &emsp;Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term. ==='''9.4 - Phase 5D: Jupiter System Locations'''=== &emsp; &emsp;Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury. :'''Jupiter System Features''' &emsp;The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system. &emsp;Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations. &emsp;Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit. &emsp;The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth. &emsp;Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side. :'''Economic Uses''' &emsp;Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges. &emsp;The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility. :'''Jupiter System Transport''' &emsp;Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts. :'''Jupiter System Production''' &emsp;Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat. :'''Living in the Jupiter System''' &emsp;Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it. ==='''9.5 - Phase 5E: Outer Giant Locations'''=== &emsp; &emsp;The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around. :'''Outer Giant Features''' &emsp;The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars). &emsp;Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby. &emsp;Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips. &emsp;Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System. &emsp;Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible. :'''Economic Uses''' &emsp;The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now. &emsp;Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research. &emsp;If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time. :'''Outer Giant Transport''' &emsp;Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical. &emsp;Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be. :'''Outer Giant Production and Living''' &emsp;We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question. =='''10.0 - Interstellar Locations'''== &emsp; &emsp;The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance. &emsp;Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order. ==='''10.1 - Phase 6A: Interstellar Space Locations'''=== &emsp; :'''Interstellar Features''' &emsp;We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun. &emsp;Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average. &emsp;The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System. &emsp;The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is. :'''Economic Uses''' &emsp;We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities. :'''Interstellar Transport''' &emsp;Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development. &emsp;Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue. &emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now. :'''Interstellar Production''' &emsp;We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades. ==='''10.2 - Phase 6B: Stellar Locations'''=== &emsp; :'''Stellar System Features''' &emsp;We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them. &emsp;Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits. &emsp;The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks. :'''Economic Uses''' &emsp;Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars. :'''Exostellar Transport''' &emsp;Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources. :'''Exostellar Production''' &emsp;As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available. </div> cgvf3mf0cz31cormg9dpnjtbawc1402 4668530 4668529 2026-09-04T09:36:13Z Danielravennest 13526 /* 6.1 - Phase 1: Starter Locations and Network */ 4668530 wikitext text/x-wiki {{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}} <div style="font-size:125%;font-family:'Georgia', serif;"> :'''Dani Eder,''' :''The Seed Factory Project,'' :''6485 Rivertown Rd, Fairburn, GA, 30213'' :''email: danielravennest@gmail.com'' :'''Aug 2026''' '''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set. <div class="nonumtoc">{{TOCright}}</div> =='''0.0 - Summary'''== &emsp; &emsp; National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort. &emsp;Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory. &emsp;Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment. &emsp;The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high. &emsp;It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea. =='''1.0 - Problems of Past Space Programs'''== &emsp; &emsp;Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology. :'''Outdated Assumptions''' &emsp;Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions: * It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface. * Because the number of missions is small and they are short, it is not economic to develop many local resources. * Most or all equipment and supplies are launched from Earth. * High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions. &emsp;Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other. :'''High Cost''' &emsp;Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings. &emsp;The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress. :'''Low Returns''' &emsp;In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them. &emsp;If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly. :'''Focus on the Moon and Mars''' &emsp;The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination. &emsp;The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay. &emsp;Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places. &emsp;A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth. =='''2.0 - New Knowledge and Technologies'''== &emsp; &emsp;Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment. ==='''2.1 - The Modern Solar System'''=== &emsp; &emsp;The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year. &emsp;Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System. &emsp;In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier. :'''Material Resources''' &emsp;'''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction. &emsp;This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth. &emsp;The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects. &emsp;Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating. [[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]] &emsp;91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found. &emsp;Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones. &emsp;'''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them. [[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]] &emsp;The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible. :'''Energy Resources''' &emsp;The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies. &emsp;It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space. &emsp;Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher. &emsp;In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment. :'''The Illusion of Scarcity''' &emsp;Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer. &emsp;The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area. &emsp;The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth. &emsp;A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used. ==='''2.2 - New Technologies'''=== &emsp; &emsp;For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology. :'''Seed Factories''' &emsp;Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient. &emsp;We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways: * Making parts for additional copies of current equipment. * Making new types of items not in the starter set, and * Making different versions of existing equipment (larger, more accurate, etc.). &emsp;While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally. &emsp;The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere. &emsp;When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better. :'''Locations and MakerNets''' &emsp;When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects. &emsp;The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost. &emsp;Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials. :'''Space Technologies''' &emsp;New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include: * '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past. * '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved. * '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology. &emsp;Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications. &emsp;Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer. &emsp; =='''3.0 - New Program Concept'''== &emsp; &emsp;For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods. &emsp;This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas. :<u>'''Goal 1 - Benefits on Earth'''</u> &emsp;Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult. &emsp;Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget. &emsp;The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same. &emsp;The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire. &emsp;As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate. &emsp;A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects. &emsp;Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel. :<u>'''Goal 2 - Benefits from Space'''</u> &emsp;Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this: * Access to materials on Earth is limited vertically because temperatures and pressure increase with depth. * Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy * Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment. * There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space. &emsp;So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment. &emsp;Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations. &emsp;Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed. &emsp;Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society. :<u>'''Program Advantages'''</u> &emsp;Our new approach has a number of advantages: * It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects. * Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable. * In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites. * A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems. * Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth. ==='''3.1 - Program Sequence'''=== &emsp; &emsp;Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this: * The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them. * We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise. * New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable. * We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches. [[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]] &emsp;In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...). [[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]] &emsp;Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below. ==='''3.2 - Phases 0 to 3: Earth Locations'''=== &emsp; &emsp;Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth. &emsp;Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves. &emsp;This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are: :&emsp;<u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed. :&emsp;<u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed. :&emsp;<u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products. :&emsp;<u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay. :&emsp;A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials. ==='''3.3 - Phases 4-6: Space Locations'''=== &emsp; &emsp;The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space. &emsp;At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet. &emsp;As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are: :&emsp;<u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant. :&emsp;The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun. :&emsp;<u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots. :&emsp;<u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for. &emsp; =='''4.0 - Seed Factory Technology'''== &emsp; &emsp;Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology. &emsp;'''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products. &emsp;Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways: * <u>Replication</u> - making copies of existing parts and equipment, * <u>Diversification</u> - making parts for new equipment not in the current set, * <u>Quality</u> - making items stronger, more accurate, or from different materials, and * <u>Scaling</u> - making different size parts (usually larger) than the current ones. &emsp;A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees. &emsp;The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory. :'''Self-Replication and Distributed Production''' &emsp;A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine. &emsp;Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring. &emsp;Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating. &emsp;Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products. :'''Operations and Functions''' &emsp;Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include: * <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment. * <u>Supply power</u> - this includes electricity, thermal heating, and other sources. * <u>Extract materials</u> - mining and harvesting raw materials. * <u>Process materials</u> - converting raw materials to usable inventory. * <u>Fabricate parts</u> - use inventory stock to produce finished parts. * <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed. * <u>Assemble elements</u> - combine finished parts and materials to produce completed products. * <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production. &emsp;Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms. &emsp;Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally. &emsp;We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely. &emsp; &emsp; =='''5.0 - Phase 0: Research and Development (R&D)'''== &emsp; &emsp;The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents. &emsp;A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations. :'''R&D Goals''' &emsp;Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills. &emsp;Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space. :'''Production by R&D Phase''' &emsp;Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use. &emsp;Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs. &emsp;Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases. :'''Sharing Our Results''' &emsp;We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally. &emsp;The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them. :'''R&D Tasks and Projects''' &emsp;The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed. &emsp;New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process. &emsp;The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks. &emsp;Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge. &emsp; =='''6.0 - Moderate Locations'''== &emsp; &emsp;Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences. &emsp;Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial. ==='''6.1 - Phase 1: Starter Locations and Network'''=== &emsp; :'''Goals''' &emsp;The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places. &emsp;Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site. :'''Starting Points''' &emsp;Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed. &emsp;Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged. &emsp;Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty. &emsp;Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones. :'''Later Improvements''' &emsp;Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food. &emsp;The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built. &emsp;Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions. ==='''6.2 - Phase 2A: Distributed Locations'''=== &emsp; :'''Goals''' &emsp;The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation. :'''Evolution''' &emsp;Phase 1 locations in general would accumulate skills and equipment. Some sites will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets. &emsp;When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places. &emsp;Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate. :'''Ownership''' &emsp;In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills. &emsp;When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently. &emsp;By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners. ==='''6.3 - Phase 2B: Industrial Locations'''=== &emsp; :'''Goals''' &emsp;The main goal of this phase is to reach the most efficient production capacity by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2. :'''Growth and Specialization''' &emsp;Industrial nodes can evolve from distributed small business or commercial nodes by continuing self-improvement and growth. They can also be built as new nodes of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding. &emsp;Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big location that can satisfy all of them. &emsp;The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase. &emsp;A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products. &emsp;The overall network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed. &emsp;Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation. =='''7.0 - Other Earth Locations'''== &emsp; :'''Goal''' &emsp;The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress. :'''Method''' &emsp;One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials. :'''New Locations''' &emsp;Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started. &emsp;Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range. &emsp;If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people. &emsp;We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects. &emsp;The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity. &emsp;That capacity then supplies products and services are for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth. ==='''7.1 - Phase 3A: Difficult Earth Locations'''=== &emsp; &emsp;We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are: &emsp;'''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth. &emsp;'''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay. &emsp;'''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range. &emsp;'''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters &emsp;'''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are. &emsp;Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply. &emsp;Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere. &emsp;'''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items. &emsp;'''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year. &emsp;A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population. &emsp;Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs. &emsp;'''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition. &emsp;On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance. &emsp;'''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days. &emsp;'''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services. &emsp;Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations. &emsp;'''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation. &emsp;On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits. &emsp;Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with. ==='''7.2 - Phase 3B: Extreme Earth Locations'''=== &emsp; &emsp;We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are: &emsp;'''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts. &emsp;'''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests. &emsp;'''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground. &emsp;'''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock. &emsp;'''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty. &emsp;'''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur. &emsp;'''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically. &emsp;'''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable. &emsp;'''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation. &emsp;'''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations. &emsp;'''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used. =='''8.0 - Phase 4: Orbital Locations'''== &emsp; [[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]] :'''Goals''' &emsp;The main goals of the later phases are using space to bring benefits to Earth, and to help with some long-term problems that can't be handled any other way. &emsp;Figure 8.0-1 is an early concept for a rotating space station, made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since solar cells were not well developed at the time. We show it as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 70 years in the future. Despite that, we have to start somewhere and then make updates as needed. :'''Approach''' &emsp;Sections 8, 9, and 10 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from. The local environments are also different on and around these bodies. &emsp;We expect the various sub-phases to have different starting times, but overlap and continue in parallel once started. Phase 6 (Interstellar) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work. :'''Current and Near-Term Space Industry''' &emsp;Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According to UN records there were over 8200 satellites orbiting the Earth at the start of 2022. Of these, about 4850 were active. There are a smaller number of spacecraft and other items that have been sent to the Moon and beyond, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving. &emsp;'''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $386 billion as of 2021, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs. &emsp;Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and well over a thousand '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level. &emsp;Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight. &emsp;Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. This adds to the cost of operating in space. Refueling, maintenance, and repair of equipment in space is very limited. New production, upgrades, and recycling is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism. :'''Long-Term Sustainability''' &emsp;As of 2021 fossil fuels supplied about 77% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it. &emsp;These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is. &emsp;Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both. &emsp;At the same time, the world's population is growing, and not everyone has the benefits of full development. Such development demands even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it does not reduce it to zero. :'''Civilization-Level Risks''' &emsp;Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release. &emsp;Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce the risks. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent. &emsp;There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery. ==='''8.1 - Using Space to Solve Earth's Problems'''=== &emsp; &emsp;There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores. &emsp;There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy to equipment mass ratio is roughly 50 times higher. &emsp;There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above. :'''Lowering Space Operations Cost''' &emsp;Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement. &emsp;There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need. &emsp;A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development. &emsp;Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down. &emsp;More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost". :'''Space Development Process''' &emsp;Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock. &emsp;Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence. &emsp;In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions. &emsp;Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost. &emsp;Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it. :'''General Space Environment Features''' &emsp;Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce. &emsp;The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity. &emsp;The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''. * '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature. * '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 AU, where temperatures are low enough for ice to be stable in a vacuum. * '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres. * '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets. * '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy. :&emsp;Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors. * '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure. * '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset. :&emsp;Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks. * '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet. * '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades. * '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years. * '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg. ==='''8.2 - Phase 4A: Low Orbit Locations'''=== &emsp; &emsp;Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started. &emsp;We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon. :'''Low Orbit Features''' &emsp;Earth orbits form a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''. &emsp;Objects in low orbits are in the Earth's shadow about 22-40% of the time, reduceing available energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay. &emsp;The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbits and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially. &emsp;Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations. :'''Economic Uses''' &emsp;We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the Space Station and Hubble Telescope, and national security. &emsp;Future uses may include tourism, orbital assembly and maintenance, and payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others. &emsp;We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position. :'''Transport from Earth''' &emsp;Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites. &emsp;Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities. [[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]] &emsp;'''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices. &emsp;A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in km rather than meters lower g-forces and operating pressures. But they are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on the mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch. &emsp;Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets. &emsp;The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth. &emsp;'''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option. &emsp;High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense. :'''Mining and Production''' &emsp;Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there. &emsp;There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks. &emsp;When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end. &emsp;A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse. &emsp;Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere. ==='''8.3 - Phase 4B: High Orbit Locations'''=== &emsp; :'''High Orbit Features''' &emsp;We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as you increase distance. &emsp;The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations. &emsp;High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold Cosmic Background, but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy. &emsp;Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies. :'''Economic Uses''' &emsp;One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts. &emsp;Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity and the Moon's orbit not being circular or in the same plane as the Earth and Sun cause some motion around the points. &emsp;Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can include supplying fuel and other supplies from space sources back to low orbit and to early interplanetary locations. These and other possible future activities depend on bringing costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels. &emsp;There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Large solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts. &emsp;The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 250 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources can make civilization sustainable for a very long time. :'''Transport from Other Orbits''' &emsp;Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then more chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years. &emsp;Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://www.nrel.gov/pv/cell-efficiency.html NREL Efficiency Chart]'''). The engines are low thrust, which would expose people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, the penalty for less efficient transport can be reduced. &emsp;Bulk materials mined from NEOs (Section 2.1) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed. &emsp;The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all of them would supply the widest range of raw materials to make the widest range of products. :'''High Orbit Production''' &emsp;Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, and active refrigeration if needed. &emsp;A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations. &emsp;Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth. &emsp;Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies. &emsp;Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, a small amount of carbon added to make a steel alloy, and then cast into basic shapes. &emsp;Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials. &emsp;Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction. &emsp;'''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. They are used in all kinds of industrial processes such as furnaces and cooling systems for thermal processing of materials. &emsp;In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing them is easier than trying to make them. :'''Living in High Orbit''' &emsp;After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities. &emsp;Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels. &emsp;Layered growth adds new pressure shells over compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved outwards to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed. ==='''8.4 - Phase 4C: Inner Interplanetary Locations'''=== &emsp; :'''Inner Interplanetary Features''' &emsp;These are orbits detached from the Earth's dominant gravity and go around the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun to 1.8 AU. This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, Earth, and Mars, and orbits around them. &emsp;Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time. &emsp;Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side. &emsp;As noted in section 2.1, there are nearly 32,000 known NEOs as of April 2023, and the number is currently increasing by 10% a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large. &emsp;Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions. &emsp;There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us. :'''Economic Uses''' &emsp;There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces. &emsp;Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally. :'''Inner Interplanetary Transport''' &emsp;The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion. &emsp;'''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit. &emsp;Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region. &emsp;Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal. &emsp;Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space. :'''Inner Interplanetary Production''' &emsp;Global primary energy consumption on Earth was 18 TeraWatts in 2021. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits. &emsp;Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it. &emsp;The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with. &emsp;If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain civilization. :'''Living Beyond Earth Orbit''' &emsp;Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time. &emsp;It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the it stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy. ==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''=== &emsp; &emsp;Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials. :'''Mid-Interplanetary Features''' [[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]] &emsp;This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2023 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.18 million other Main Belt asteroids, over 5600 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 12,500 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. It does not include Jupiter itself and the region within 20 million km of the planet (Section 9.4). &emsp;There are around 450 known comets in the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of it. &emsp;Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years on minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including a relay to avoid a direct path through the Sun. &emsp;The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun. :'''Economic Uses''' &emsp;This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable mining and transport to earlier locations as early activities. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization. :'''Mid-Interplanetary Transport''' &emsp;The same transport methods can be used in this region as for the inner interplanetary region. The main difference is adding reflectors to solar panels to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, they also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency. :'''Mid-Interplanetary Production''' &emsp;The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels benefit from reflectors to increase the light intensity. Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials. &emsp;Asteroids are covered in a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area or the whole asteroid can be covered to contain loose material. &emsp;More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs to factories for later production steps. For larger operations, a shell can surround the whole asteroid, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter. ==='''8.6 - Phase 4E: Outer Interplanetary Locations'''=== &emsp; &emsp;This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials. :'''Outer Interplanetary Features''' &emsp;Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2023 there are over 500 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also thousands of known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 3800 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered. &emsp;Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from 160 to 50K for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours. &emsp;The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the smaller ones 'minor planets'. :'''Outer Interplanetary Activities''' &emsp;This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is undertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them. &emsp;Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, they can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced. &emsp;As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region. &emsp;We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule. &emsp;If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop. ==='''8.7 - Phase 4F: Distant Orbit Locations'''=== &emsp; &emsp;The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'. :'''Distant Orbit Features''' &emsp;Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's dominance at about 100,000 AU. As of 2023 there are about 1200 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a similar number of '''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets. &emsp;A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region. &emsp;Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit. &emsp;Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years. :'''Distant Orbit Activities''' &emsp;Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens. &emsp;To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative at present. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must remain speculative at present. =='''9.0 - Planetary System Locations'''== &emsp; &emsp;The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative objects in the orbital regions, and third is the diversity of conditions found on and around the planets. &emsp;Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach them carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time. ==='''9.1 - Phase 5A: Lunar Locations'''=== &emsp; &emsp;Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our technical approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets. :'''Lunar Features''' &emsp;The Lunar region includes the Moon itself, and orbits with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field (Figure 9.1-1). The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it ([https://link.springer.com/article/10.1134/S0038094617070061 ''Gordienko, 2018'']). &emsp;The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location. &emsp;Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increase the total exposed surface area. [[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]] &emsp;Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same. &emsp;The Moon is tidally locked to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day. &emsp;Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth. &emsp;The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements. &emsp;The Moon is too small and warm to keep an atmosphere. With nothing to stop them, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface. :'''Economic Uses''' &emsp;The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits. &emsp;Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without using heavy equipment and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment. &emsp;Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space. :'''Lunar Transport''' &emsp;Early landings on the Moon would not have the support of much infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability. &emsp;Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location. &emsp;Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls. &emsp;If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency. &emsp;Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can supply shielding. With these people can live comfortably and safely. They are close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times. :'''Lunar Production''' &emsp;The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves. &emsp;Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease. &emsp;Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful. &emsp;Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore. &emsp;Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night. :'''Living in Lunar Locations''' &emsp;Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time. &emsp;We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control. &emsp;The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best. ==='''9.2 - Phase 5B: Mars Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between. :'''Mars Features''' &emsp;The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin. &emsp;Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding. &emsp;Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way. &emsp;The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition. [[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]] &emsp;The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass. &emsp;Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps. :'''Economic Uses''' &emsp;Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids. &emsp;Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available. &emsp;As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth. :'''Mars Transport''' &emsp;In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit. &emsp;Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more. &emsp;Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs. &emsp;When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface. &emsp;Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems. &emsp;Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred. :'''Mars Production''' &emsp;Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries. &emsp;Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first. :'''Living in Mars Locations''' &emsp;Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats. &emsp;'''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier. &emsp;An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection. ==='''9.3 - Phase 5C: Venus and Mercury Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with. :'''Venus and Mercury Features''' &emsp;The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU. &emsp;Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes. &emsp;Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively. &emsp;The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters :'''Economic Uses''' &emsp;Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed. &emsp;Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry. &emsp;It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun. :'''Venus and Mercury Transport''' &emsp;Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow. &emsp;For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines. :'''Venus and Mercury Production''' &emsp;Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away. &emsp;Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time. :'''Living at Venus and Mercury''' &emsp;Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term. ==='''9.4 - Phase 5D: Jupiter System Locations'''=== &emsp; &emsp;Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury. :'''Jupiter System Features''' &emsp;The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system. &emsp;Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations. &emsp;Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit. &emsp;The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth. &emsp;Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side. :'''Economic Uses''' &emsp;Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges. &emsp;The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility. :'''Jupiter System Transport''' &emsp;Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts. :'''Jupiter System Production''' &emsp;Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat. :'''Living in the Jupiter System''' &emsp;Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it. ==='''9.5 - Phase 5E: Outer Giant Locations'''=== &emsp; &emsp;The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around. :'''Outer Giant Features''' &emsp;The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars). &emsp;Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby. &emsp;Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips. &emsp;Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System. &emsp;Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible. :'''Economic Uses''' &emsp;The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now. &emsp;Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research. &emsp;If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time. :'''Outer Giant Transport''' &emsp;Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical. &emsp;Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be. :'''Outer Giant Production and Living''' &emsp;We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question. =='''10.0 - Interstellar Locations'''== &emsp; &emsp;The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance. &emsp;Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order. ==='''10.1 - Phase 6A: Interstellar Space Locations'''=== &emsp; :'''Interstellar Features''' &emsp;We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun. &emsp;Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average. &emsp;The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System. &emsp;The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is. :'''Economic Uses''' &emsp;We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities. :'''Interstellar Transport''' &emsp;Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development. &emsp;Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue. &emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now. :'''Interstellar Production''' &emsp;We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades. ==='''10.2 - Phase 6B: Stellar Locations'''=== &emsp; :'''Stellar System Features''' &emsp;We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them. &emsp;Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits. &emsp;The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks. :'''Economic Uses''' &emsp;Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars. :'''Exostellar Transport''' &emsp;Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources. :'''Exostellar Production''' &emsp;As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available. </div> c66ibxp9etfo0w9azwdvsjejcl4mjfq 4668531 4668530 2026-09-04T09:42:23Z Danielravennest 13526 /* 6.2 - Phase 2A: Distributed Locations */ 4668531 wikitext text/x-wiki {{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}} <div style="font-size:125%;font-family:'Georgia', serif;"> :'''Dani Eder,''' :''The Seed Factory Project,'' :''6485 Rivertown Rd, Fairburn, GA, 30213'' :''email: danielravennest@gmail.com'' :'''Aug 2026''' '''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set. <div class="nonumtoc">{{TOCright}}</div> =='''0.0 - Summary'''== &emsp; &emsp; National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort. &emsp;Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory. &emsp;Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment. &emsp;The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high. &emsp;It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea. =='''1.0 - Problems of Past Space Programs'''== &emsp; &emsp;Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology. :'''Outdated Assumptions''' &emsp;Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions: * It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface. * Because the number of missions is small and they are short, it is not economic to develop many local resources. * Most or all equipment and supplies are launched from Earth. * High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions. &emsp;Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other. :'''High Cost''' &emsp;Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings. &emsp;The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress. :'''Low Returns''' &emsp;In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them. &emsp;If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly. :'''Focus on the Moon and Mars''' &emsp;The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination. &emsp;The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay. &emsp;Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places. &emsp;A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth. =='''2.0 - New Knowledge and Technologies'''== &emsp; &emsp;Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment. ==='''2.1 - The Modern Solar System'''=== &emsp; &emsp;The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year. &emsp;Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System. &emsp;In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier. :'''Material Resources''' &emsp;'''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction. &emsp;This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth. &emsp;The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects. &emsp;Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating. [[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]] &emsp;91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found. &emsp;Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones. &emsp;'''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them. [[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]] &emsp;The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible. :'''Energy Resources''' &emsp;The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies. &emsp;It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space. &emsp;Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher. &emsp;In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment. :'''The Illusion of Scarcity''' &emsp;Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer. &emsp;The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area. &emsp;The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth. &emsp;A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used. ==='''2.2 - New Technologies'''=== &emsp; &emsp;For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology. :'''Seed Factories''' &emsp;Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient. &emsp;We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways: * Making parts for additional copies of current equipment. * Making new types of items not in the starter set, and * Making different versions of existing equipment (larger, more accurate, etc.). &emsp;While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally. &emsp;The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere. &emsp;When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better. :'''Locations and MakerNets''' &emsp;When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects. &emsp;The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost. &emsp;Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials. :'''Space Technologies''' &emsp;New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include: * '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past. * '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved. * '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology. &emsp;Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications. &emsp;Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer. &emsp; =='''3.0 - New Program Concept'''== &emsp; &emsp;For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods. &emsp;This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas. :<u>'''Goal 1 - Benefits on Earth'''</u> &emsp;Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult. &emsp;Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget. &emsp;The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same. &emsp;The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire. &emsp;As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate. &emsp;A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects. &emsp;Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel. :<u>'''Goal 2 - Benefits from Space'''</u> &emsp;Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this: * Access to materials on Earth is limited vertically because temperatures and pressure increase with depth. * Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy * Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment. * There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space. &emsp;So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment. &emsp;Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations. &emsp;Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed. &emsp;Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society. :<u>'''Program Advantages'''</u> &emsp;Our new approach has a number of advantages: * It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects. * Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable. * In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites. * A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems. * Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth. ==='''3.1 - Program Sequence'''=== &emsp; &emsp;Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this: * The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them. * We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise. * New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable. * We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches. [[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]] &emsp;In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...). [[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]] &emsp;Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below. ==='''3.2 - Phases 0 to 3: Earth Locations'''=== &emsp; &emsp;Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth. &emsp;Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves. &emsp;This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are: :&emsp;<u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed. :&emsp;<u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed. :&emsp;<u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products. :&emsp;<u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay. :&emsp;A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials. ==='''3.3 - Phases 4-6: Space Locations'''=== &emsp; &emsp;The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space. &emsp;At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet. &emsp;As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are: :&emsp;<u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant. :&emsp;The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun. :&emsp;<u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots. :&emsp;<u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for. &emsp; =='''4.0 - Seed Factory Technology'''== &emsp; &emsp;Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology. &emsp;'''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products. &emsp;Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways: * <u>Replication</u> - making copies of existing parts and equipment, * <u>Diversification</u> - making parts for new equipment not in the current set, * <u>Quality</u> - making items stronger, more accurate, or from different materials, and * <u>Scaling</u> - making different size parts (usually larger) than the current ones. &emsp;A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees. &emsp;The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory. :'''Self-Replication and Distributed Production''' &emsp;A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine. &emsp;Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring. &emsp;Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating. &emsp;Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products. :'''Operations and Functions''' &emsp;Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include: * <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment. * <u>Supply power</u> - this includes electricity, thermal heating, and other sources. * <u>Extract materials</u> - mining and harvesting raw materials. * <u>Process materials</u> - converting raw materials to usable inventory. * <u>Fabricate parts</u> - use inventory stock to produce finished parts. * <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed. * <u>Assemble elements</u> - combine finished parts and materials to produce completed products. * <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production. &emsp;Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms. &emsp;Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally. &emsp;We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely. &emsp; &emsp; =='''5.0 - Phase 0: Research and Development (R&D)'''== &emsp; &emsp;The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents. &emsp;A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations. :'''R&D Goals''' &emsp;Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills. &emsp;Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space. :'''Production by R&D Phase''' &emsp;Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use. &emsp;Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs. &emsp;Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases. :'''Sharing Our Results''' &emsp;We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally. &emsp;The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them. :'''R&D Tasks and Projects''' &emsp;The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed. &emsp;New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process. &emsp;The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks. &emsp;Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge. &emsp; =='''6.0 - Moderate Locations'''== &emsp; &emsp;Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences. &emsp;Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial. ==='''6.1 - Phase 1: Starter Locations and Network'''=== &emsp; :'''Goals''' &emsp;The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places. &emsp;Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site. :'''Starting Points''' &emsp;Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed. &emsp;Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged. &emsp;Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty. &emsp;Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones. :'''Later Improvements''' &emsp;Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food. &emsp;The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built. &emsp;Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions. ==='''6.2 - Phase 2A: Distributed Locations'''=== &emsp; :'''Goals''' &emsp;The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation. :'''Evolution''' &emsp;Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets. &emsp;When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places. &emsp;Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate. :'''Ownership''' &emsp;In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills. &emsp;When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently. &emsp;By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners. ==='''6.3 - Phase 2B: Industrial Locations'''=== &emsp; :'''Goals''' &emsp;The main goal of this phase is to reach the most efficient production capacity by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2. :'''Growth and Specialization''' &emsp;Industrial nodes can evolve from distributed small business or commercial nodes by continuing self-improvement and growth. They can also be built as new nodes of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding. &emsp;Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big location that can satisfy all of them. &emsp;The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase. &emsp;A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products. &emsp;The overall network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed. &emsp;Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation. =='''7.0 - Other Earth Locations'''== &emsp; :'''Goal''' &emsp;The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress. :'''Method''' &emsp;One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials. :'''New Locations''' &emsp;Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started. &emsp;Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range. &emsp;If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people. &emsp;We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects. &emsp;The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity. &emsp;That capacity then supplies products and services are for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth. ==='''7.1 - Phase 3A: Difficult Earth Locations'''=== &emsp; &emsp;We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are: &emsp;'''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth. &emsp;'''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay. &emsp;'''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range. &emsp;'''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters &emsp;'''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are. &emsp;Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply. &emsp;Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere. &emsp;'''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items. &emsp;'''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year. &emsp;A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population. &emsp;Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs. &emsp;'''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition. &emsp;On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance. &emsp;'''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days. &emsp;'''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services. &emsp;Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations. &emsp;'''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation. &emsp;On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits. &emsp;Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with. ==='''7.2 - Phase 3B: Extreme Earth Locations'''=== &emsp; &emsp;We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are: &emsp;'''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts. &emsp;'''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests. &emsp;'''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground. &emsp;'''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock. &emsp;'''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty. &emsp;'''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur. &emsp;'''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically. &emsp;'''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable. &emsp;'''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation. &emsp;'''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations. &emsp;'''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used. =='''8.0 - Phase 4: Orbital Locations'''== &emsp; [[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]] :'''Goals''' &emsp;The main goals of the later phases are using space to bring benefits to Earth, and to help with some long-term problems that can't be handled any other way. &emsp;Figure 8.0-1 is an early concept for a rotating space station, made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since solar cells were not well developed at the time. We show it as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 70 years in the future. Despite that, we have to start somewhere and then make updates as needed. :'''Approach''' &emsp;Sections 8, 9, and 10 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from. The local environments are also different on and around these bodies. &emsp;We expect the various sub-phases to have different starting times, but overlap and continue in parallel once started. Phase 6 (Interstellar) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work. :'''Current and Near-Term Space Industry''' &emsp;Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According to UN records there were over 8200 satellites orbiting the Earth at the start of 2022. Of these, about 4850 were active. There are a smaller number of spacecraft and other items that have been sent to the Moon and beyond, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving. &emsp;'''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $386 billion as of 2021, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs. &emsp;Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and well over a thousand '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level. &emsp;Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight. &emsp;Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. This adds to the cost of operating in space. Refueling, maintenance, and repair of equipment in space is very limited. New production, upgrades, and recycling is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism. :'''Long-Term Sustainability''' &emsp;As of 2021 fossil fuels supplied about 77% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it. &emsp;These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is. &emsp;Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both. &emsp;At the same time, the world's population is growing, and not everyone has the benefits of full development. Such development demands even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it does not reduce it to zero. :'''Civilization-Level Risks''' &emsp;Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release. &emsp;Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce the risks. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent. &emsp;There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery. ==='''8.1 - Using Space to Solve Earth's Problems'''=== &emsp; &emsp;There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores. &emsp;There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy to equipment mass ratio is roughly 50 times higher. &emsp;There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above. :'''Lowering Space Operations Cost''' &emsp;Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement. &emsp;There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need. &emsp;A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development. &emsp;Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down. &emsp;More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost". :'''Space Development Process''' &emsp;Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock. &emsp;Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence. &emsp;In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions. &emsp;Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost. &emsp;Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it. :'''General Space Environment Features''' &emsp;Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce. &emsp;The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity. &emsp;The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''. * '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature. * '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 AU, where temperatures are low enough for ice to be stable in a vacuum. * '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres. * '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets. * '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy. :&emsp;Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors. * '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure. * '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset. :&emsp;Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks. * '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet. * '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades. * '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years. * '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg. ==='''8.2 - Phase 4A: Low Orbit Locations'''=== &emsp; &emsp;Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started. &emsp;We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon. :'''Low Orbit Features''' &emsp;Earth orbits form a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''. &emsp;Objects in low orbits are in the Earth's shadow about 22-40% of the time, reduceing available energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay. &emsp;The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbits and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially. &emsp;Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations. :'''Economic Uses''' &emsp;We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the Space Station and Hubble Telescope, and national security. &emsp;Future uses may include tourism, orbital assembly and maintenance, and payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others. &emsp;We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position. :'''Transport from Earth''' &emsp;Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites. &emsp;Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities. [[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]] &emsp;'''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices. &emsp;A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in km rather than meters lower g-forces and operating pressures. But they are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on the mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch. &emsp;Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets. &emsp;The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth. &emsp;'''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option. &emsp;High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense. :'''Mining and Production''' &emsp;Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there. &emsp;There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks. &emsp;When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end. &emsp;A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse. &emsp;Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere. ==='''8.3 - Phase 4B: High Orbit Locations'''=== &emsp; :'''High Orbit Features''' &emsp;We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as you increase distance. &emsp;The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations. &emsp;High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold Cosmic Background, but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy. &emsp;Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies. :'''Economic Uses''' &emsp;One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts. &emsp;Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity and the Moon's orbit not being circular or in the same plane as the Earth and Sun cause some motion around the points. &emsp;Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can include supplying fuel and other supplies from space sources back to low orbit and to early interplanetary locations. These and other possible future activities depend on bringing costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels. &emsp;There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Large solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts. &emsp;The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 250 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources can make civilization sustainable for a very long time. :'''Transport from Other Orbits''' &emsp;Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then more chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years. &emsp;Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://www.nrel.gov/pv/cell-efficiency.html NREL Efficiency Chart]'''). The engines are low thrust, which would expose people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, the penalty for less efficient transport can be reduced. &emsp;Bulk materials mined from NEOs (Section 2.1) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed. &emsp;The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all of them would supply the widest range of raw materials to make the widest range of products. :'''High Orbit Production''' &emsp;Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, and active refrigeration if needed. &emsp;A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations. &emsp;Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth. &emsp;Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies. &emsp;Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, a small amount of carbon added to make a steel alloy, and then cast into basic shapes. &emsp;Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials. &emsp;Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction. &emsp;'''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. They are used in all kinds of industrial processes such as furnaces and cooling systems for thermal processing of materials. &emsp;In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing them is easier than trying to make them. :'''Living in High Orbit''' &emsp;After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities. &emsp;Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels. &emsp;Layered growth adds new pressure shells over compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved outwards to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed. ==='''8.4 - Phase 4C: Inner Interplanetary Locations'''=== &emsp; :'''Inner Interplanetary Features''' &emsp;These are orbits detached from the Earth's dominant gravity and go around the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun to 1.8 AU. This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, Earth, and Mars, and orbits around them. &emsp;Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time. &emsp;Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side. &emsp;As noted in section 2.1, there are nearly 32,000 known NEOs as of April 2023, and the number is currently increasing by 10% a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large. &emsp;Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions. &emsp;There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us. :'''Economic Uses''' &emsp;There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces. &emsp;Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally. :'''Inner Interplanetary Transport''' &emsp;The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion. &emsp;'''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit. &emsp;Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region. &emsp;Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal. &emsp;Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space. :'''Inner Interplanetary Production''' &emsp;Global primary energy consumption on Earth was 18 TeraWatts in 2021. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits. &emsp;Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it. &emsp;The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with. &emsp;If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain civilization. :'''Living Beyond Earth Orbit''' &emsp;Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time. &emsp;It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the it stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy. ==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''=== &emsp; &emsp;Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials. :'''Mid-Interplanetary Features''' [[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]] &emsp;This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2023 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.18 million other Main Belt asteroids, over 5600 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 12,500 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. It does not include Jupiter itself and the region within 20 million km of the planet (Section 9.4). &emsp;There are around 450 known comets in the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of it. &emsp;Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years on minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including a relay to avoid a direct path through the Sun. &emsp;The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun. :'''Economic Uses''' &emsp;This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable mining and transport to earlier locations as early activities. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization. :'''Mid-Interplanetary Transport''' &emsp;The same transport methods can be used in this region as for the inner interplanetary region. The main difference is adding reflectors to solar panels to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, they also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency. :'''Mid-Interplanetary Production''' &emsp;The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels benefit from reflectors to increase the light intensity. Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials. &emsp;Asteroids are covered in a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area or the whole asteroid can be covered to contain loose material. &emsp;More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs to factories for later production steps. For larger operations, a shell can surround the whole asteroid, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter. ==='''8.6 - Phase 4E: Outer Interplanetary Locations'''=== &emsp; &emsp;This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials. :'''Outer Interplanetary Features''' &emsp;Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2023 there are over 500 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also thousands of known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 3800 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered. &emsp;Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from 160 to 50K for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours. &emsp;The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the smaller ones 'minor planets'. :'''Outer Interplanetary Activities''' &emsp;This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is undertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them. &emsp;Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, they can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced. &emsp;As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region. &emsp;We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule. &emsp;If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop. ==='''8.7 - Phase 4F: Distant Orbit Locations'''=== &emsp; &emsp;The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'. :'''Distant Orbit Features''' &emsp;Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's dominance at about 100,000 AU. As of 2023 there are about 1200 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a similar number of '''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets. &emsp;A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region. &emsp;Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit. &emsp;Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years. :'''Distant Orbit Activities''' &emsp;Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens. &emsp;To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative at present. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must remain speculative at present. =='''9.0 - Planetary System Locations'''== &emsp; &emsp;The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative objects in the orbital regions, and third is the diversity of conditions found on and around the planets. &emsp;Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach them carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time. ==='''9.1 - Phase 5A: Lunar Locations'''=== &emsp; &emsp;Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our technical approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets. :'''Lunar Features''' &emsp;The Lunar region includes the Moon itself, and orbits with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field (Figure 9.1-1). The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it ([https://link.springer.com/article/10.1134/S0038094617070061 ''Gordienko, 2018'']). &emsp;The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location. &emsp;Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increase the total exposed surface area. [[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]] &emsp;Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same. &emsp;The Moon is tidally locked to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day. &emsp;Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth. &emsp;The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements. &emsp;The Moon is too small and warm to keep an atmosphere. With nothing to stop them, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface. :'''Economic Uses''' &emsp;The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits. &emsp;Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without using heavy equipment and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment. &emsp;Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space. :'''Lunar Transport''' &emsp;Early landings on the Moon would not have the support of much infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability. &emsp;Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location. &emsp;Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls. &emsp;If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency. &emsp;Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can supply shielding. With these people can live comfortably and safely. They are close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times. :'''Lunar Production''' &emsp;The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves. &emsp;Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease. &emsp;Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful. &emsp;Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore. &emsp;Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night. :'''Living in Lunar Locations''' &emsp;Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time. &emsp;We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control. &emsp;The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best. ==='''9.2 - Phase 5B: Mars Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between. :'''Mars Features''' &emsp;The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin. &emsp;Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding. &emsp;Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way. &emsp;The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition. [[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]] &emsp;The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass. &emsp;Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps. :'''Economic Uses''' &emsp;Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids. &emsp;Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available. &emsp;As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth. :'''Mars Transport''' &emsp;In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit. &emsp;Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more. &emsp;Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs. &emsp;When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface. &emsp;Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems. &emsp;Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred. :'''Mars Production''' &emsp;Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries. &emsp;Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first. :'''Living in Mars Locations''' &emsp;Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats. &emsp;'''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier. &emsp;An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection. ==='''9.3 - Phase 5C: Venus and Mercury Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with. :'''Venus and Mercury Features''' &emsp;The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU. &emsp;Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes. &emsp;Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively. &emsp;The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters :'''Economic Uses''' &emsp;Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed. &emsp;Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry. &emsp;It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun. :'''Venus and Mercury Transport''' &emsp;Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow. &emsp;For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines. :'''Venus and Mercury Production''' &emsp;Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away. &emsp;Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time. :'''Living at Venus and Mercury''' &emsp;Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term. ==='''9.4 - Phase 5D: Jupiter System Locations'''=== &emsp; &emsp;Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury. :'''Jupiter System Features''' &emsp;The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system. &emsp;Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations. &emsp;Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit. &emsp;The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth. &emsp;Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side. :'''Economic Uses''' &emsp;Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges. &emsp;The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility. :'''Jupiter System Transport''' &emsp;Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts. :'''Jupiter System Production''' &emsp;Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat. :'''Living in the Jupiter System''' &emsp;Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it. ==='''9.5 - Phase 5E: Outer Giant Locations'''=== &emsp; &emsp;The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around. :'''Outer Giant Features''' &emsp;The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars). &emsp;Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby. &emsp;Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips. &emsp;Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System. &emsp;Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible. :'''Economic Uses''' &emsp;The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now. &emsp;Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research. &emsp;If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time. :'''Outer Giant Transport''' &emsp;Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical. &emsp;Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be. :'''Outer Giant Production and Living''' &emsp;We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question. =='''10.0 - Interstellar Locations'''== &emsp; &emsp;The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance. &emsp;Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order. ==='''10.1 - Phase 6A: Interstellar Space Locations'''=== &emsp; :'''Interstellar Features''' &emsp;We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun. &emsp;Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average. &emsp;The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System. &emsp;The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is. :'''Economic Uses''' &emsp;We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities. :'''Interstellar Transport''' &emsp;Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development. &emsp;Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue. &emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now. :'''Interstellar Production''' &emsp;We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades. ==='''10.2 - Phase 6B: Stellar Locations'''=== &emsp; :'''Stellar System Features''' &emsp;We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them. &emsp;Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits. &emsp;The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks. :'''Economic Uses''' &emsp;Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars. :'''Exostellar Transport''' &emsp;Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources. :'''Exostellar Production''' &emsp;As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available. </div> 12046w4069xoie4sqo34d3zjywdd2bw 4668532 4668531 2026-09-04T09:50:07Z Danielravennest 13526 /* 6.3 - Phase 2B: Industrial Locations */ 4668532 wikitext text/x-wiki {{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}} <div style="font-size:125%;font-family:'Georgia', serif;"> :'''Dani Eder,''' :''The Seed Factory Project,'' :''6485 Rivertown Rd, Fairburn, GA, 30213'' :''email: danielravennest@gmail.com'' :'''Aug 2026''' '''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set. <div class="nonumtoc">{{TOCright}}</div> =='''0.0 - Summary'''== &emsp; &emsp; National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort. &emsp;Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory. &emsp;Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment. &emsp;The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high. &emsp;It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea. =='''1.0 - Problems of Past Space Programs'''== &emsp; &emsp;Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology. :'''Outdated Assumptions''' &emsp;Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions: * It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface. * Because the number of missions is small and they are short, it is not economic to develop many local resources. * Most or all equipment and supplies are launched from Earth. * High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions. &emsp;Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other. :'''High Cost''' &emsp;Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings. &emsp;The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress. :'''Low Returns''' &emsp;In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them. &emsp;If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly. :'''Focus on the Moon and Mars''' &emsp;The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination. &emsp;The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay. &emsp;Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places. &emsp;A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth. =='''2.0 - New Knowledge and Technologies'''== &emsp; &emsp;Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment. ==='''2.1 - The Modern Solar System'''=== &emsp; &emsp;The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year. &emsp;Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System. &emsp;In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier. :'''Material Resources''' &emsp;'''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction. &emsp;This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth. &emsp;The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects. &emsp;Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating. [[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]] &emsp;91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found. &emsp;Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones. &emsp;'''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them. [[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]] &emsp;The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible. :'''Energy Resources''' &emsp;The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies. &emsp;It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space. &emsp;Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher. &emsp;In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment. :'''The Illusion of Scarcity''' &emsp;Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer. &emsp;The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area. &emsp;The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth. &emsp;A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used. ==='''2.2 - New Technologies'''=== &emsp; &emsp;For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology. :'''Seed Factories''' &emsp;Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient. &emsp;We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways: * Making parts for additional copies of current equipment. * Making new types of items not in the starter set, and * Making different versions of existing equipment (larger, more accurate, etc.). &emsp;While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally. &emsp;The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere. &emsp;When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better. :'''Locations and MakerNets''' &emsp;When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects. &emsp;The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost. &emsp;Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials. :'''Space Technologies''' &emsp;New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include: * '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past. * '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved. * '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology. &emsp;Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications. &emsp;Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer. &emsp; =='''3.0 - New Program Concept'''== &emsp; &emsp;For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods. &emsp;This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas. :<u>'''Goal 1 - Benefits on Earth'''</u> &emsp;Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult. &emsp;Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget. &emsp;The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same. &emsp;The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire. &emsp;As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate. &emsp;A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects. &emsp;Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel. :<u>'''Goal 2 - Benefits from Space'''</u> &emsp;Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this: * Access to materials on Earth is limited vertically because temperatures and pressure increase with depth. * Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy * Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment. * There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space. &emsp;So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment. &emsp;Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations. &emsp;Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed. &emsp;Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society. :<u>'''Program Advantages'''</u> &emsp;Our new approach has a number of advantages: * It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects. * Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable. * In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites. * A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems. * Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth. ==='''3.1 - Program Sequence'''=== &emsp; &emsp;Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this: * The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them. * We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise. * New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable. * We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches. [[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]] &emsp;In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...). [[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]] &emsp;Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below. ==='''3.2 - Phases 0 to 3: Earth Locations'''=== &emsp; &emsp;Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth. &emsp;Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves. &emsp;This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are: :&emsp;<u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed. :&emsp;<u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed. :&emsp;<u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products. :&emsp;<u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay. :&emsp;A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials. ==='''3.3 - Phases 4-6: Space Locations'''=== &emsp; &emsp;The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space. &emsp;At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet. &emsp;As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are: :&emsp;<u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant. :&emsp;The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun. :&emsp;<u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots. :&emsp;<u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for. &emsp; =='''4.0 - Seed Factory Technology'''== &emsp; &emsp;Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology. &emsp;'''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products. &emsp;Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways: * <u>Replication</u> - making copies of existing parts and equipment, * <u>Diversification</u> - making parts for new equipment not in the current set, * <u>Quality</u> - making items stronger, more accurate, or from different materials, and * <u>Scaling</u> - making different size parts (usually larger) than the current ones. &emsp;A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees. &emsp;The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory. :'''Self-Replication and Distributed Production''' &emsp;A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine. &emsp;Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring. &emsp;Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating. &emsp;Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products. :'''Operations and Functions''' &emsp;Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include: * <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment. * <u>Supply power</u> - this includes electricity, thermal heating, and other sources. * <u>Extract materials</u> - mining and harvesting raw materials. * <u>Process materials</u> - converting raw materials to usable inventory. * <u>Fabricate parts</u> - use inventory stock to produce finished parts. * <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed. * <u>Assemble elements</u> - combine finished parts and materials to produce completed products. * <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production. &emsp;Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms. &emsp;Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally. &emsp;We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely. &emsp; &emsp; =='''5.0 - Phase 0: Research and Development (R&D)'''== &emsp; &emsp;The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents. &emsp;A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations. :'''R&D Goals''' &emsp;Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills. &emsp;Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space. :'''Production by R&D Phase''' &emsp;Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use. &emsp;Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs. &emsp;Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases. :'''Sharing Our Results''' &emsp;We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally. &emsp;The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them. :'''R&D Tasks and Projects''' &emsp;The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed. &emsp;New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process. &emsp;The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks. &emsp;Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge. &emsp; =='''6.0 - Moderate Locations'''== &emsp; &emsp;Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences. &emsp;Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial. ==='''6.1 - Phase 1: Starter Locations and Network'''=== &emsp; :'''Goals''' &emsp;The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places. &emsp;Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site. :'''Starting Points''' &emsp;Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed. &emsp;Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged. &emsp;Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty. &emsp;Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones. :'''Later Improvements''' &emsp;Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food. &emsp;The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built. &emsp;Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions. ==='''6.2 - Phase 2A: Distributed Locations'''=== &emsp; :'''Goals''' &emsp;The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation. :'''Evolution''' &emsp;Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets. &emsp;When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places. &emsp;Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate. :'''Ownership''' &emsp;In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills. &emsp;When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently. &emsp;By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners. ==='''6.3 - Phase 2B: Industrial Locations'''=== &emsp; :'''Goals''' &emsp;The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2. :'''Growth and Specialization''' &emsp;Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding. &emsp;Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them. &emsp;The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase. &emsp;A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products. &emsp;The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed. &emsp;Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation. =='''7.0 - Other Earth Locations'''== &emsp; :'''Goal''' &emsp;The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress. :'''Method''' &emsp;One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials. :'''New Locations''' &emsp;Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started. &emsp;Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range. &emsp;If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people. &emsp;We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects. &emsp;The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity. &emsp;That capacity then supplies products and services are for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth. ==='''7.1 - Phase 3A: Difficult Earth Locations'''=== &emsp; &emsp;We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are: &emsp;'''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth. &emsp;'''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay. &emsp;'''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range. &emsp;'''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters &emsp;'''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are. &emsp;Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply. &emsp;Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere. &emsp;'''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items. &emsp;'''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year. &emsp;A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population. &emsp;Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs. &emsp;'''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition. &emsp;On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance. &emsp;'''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days. &emsp;'''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services. &emsp;Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations. &emsp;'''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation. &emsp;On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits. &emsp;Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with. ==='''7.2 - Phase 3B: Extreme Earth Locations'''=== &emsp; &emsp;We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are: &emsp;'''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts. &emsp;'''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests. &emsp;'''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground. &emsp;'''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock. &emsp;'''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty. &emsp;'''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur. &emsp;'''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically. &emsp;'''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable. &emsp;'''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation. &emsp;'''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations. &emsp;'''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used. =='''8.0 - Phase 4: Orbital Locations'''== &emsp; [[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]] :'''Goals''' &emsp;The main goals of the later phases are using space to bring benefits to Earth, and to help with some long-term problems that can't be handled any other way. &emsp;Figure 8.0-1 is an early concept for a rotating space station, made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since solar cells were not well developed at the time. We show it as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 70 years in the future. Despite that, we have to start somewhere and then make updates as needed. :'''Approach''' &emsp;Sections 8, 9, and 10 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from. The local environments are also different on and around these bodies. &emsp;We expect the various sub-phases to have different starting times, but overlap and continue in parallel once started. Phase 6 (Interstellar) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work. :'''Current and Near-Term Space Industry''' &emsp;Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According to UN records there were over 8200 satellites orbiting the Earth at the start of 2022. Of these, about 4850 were active. There are a smaller number of spacecraft and other items that have been sent to the Moon and beyond, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving. &emsp;'''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $386 billion as of 2021, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs. &emsp;Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and well over a thousand '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level. &emsp;Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight. &emsp;Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. This adds to the cost of operating in space. Refueling, maintenance, and repair of equipment in space is very limited. New production, upgrades, and recycling is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism. :'''Long-Term Sustainability''' &emsp;As of 2021 fossil fuels supplied about 77% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it. &emsp;These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is. &emsp;Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both. &emsp;At the same time, the world's population is growing, and not everyone has the benefits of full development. Such development demands even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it does not reduce it to zero. :'''Civilization-Level Risks''' &emsp;Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release. &emsp;Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce the risks. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent. &emsp;There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery. ==='''8.1 - Using Space to Solve Earth's Problems'''=== &emsp; &emsp;There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores. &emsp;There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy to equipment mass ratio is roughly 50 times higher. &emsp;There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above. :'''Lowering Space Operations Cost''' &emsp;Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement. &emsp;There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need. &emsp;A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development. &emsp;Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down. &emsp;More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost". :'''Space Development Process''' &emsp;Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock. &emsp;Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence. &emsp;In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions. &emsp;Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost. &emsp;Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it. :'''General Space Environment Features''' &emsp;Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce. &emsp;The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity. &emsp;The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''. * '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature. * '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 AU, where temperatures are low enough for ice to be stable in a vacuum. * '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres. * '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets. * '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy. :&emsp;Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors. * '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure. * '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset. :&emsp;Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks. * '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet. * '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades. * '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years. * '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg. ==='''8.2 - Phase 4A: Low Orbit Locations'''=== &emsp; &emsp;Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started. &emsp;We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon. :'''Low Orbit Features''' &emsp;Earth orbits form a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''. &emsp;Objects in low orbits are in the Earth's shadow about 22-40% of the time, reduceing available energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay. &emsp;The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbits and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially. &emsp;Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations. :'''Economic Uses''' &emsp;We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the Space Station and Hubble Telescope, and national security. &emsp;Future uses may include tourism, orbital assembly and maintenance, and payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others. &emsp;We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position. :'''Transport from Earth''' &emsp;Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites. &emsp;Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities. [[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]] &emsp;'''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices. &emsp;A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in km rather than meters lower g-forces and operating pressures. But they are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on the mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch. &emsp;Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets. &emsp;The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth. &emsp;'''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option. &emsp;High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense. :'''Mining and Production''' &emsp;Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there. &emsp;There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks. &emsp;When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end. &emsp;A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse. &emsp;Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere. ==='''8.3 - Phase 4B: High Orbit Locations'''=== &emsp; :'''High Orbit Features''' &emsp;We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as you increase distance. &emsp;The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations. &emsp;High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold Cosmic Background, but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy. &emsp;Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies. :'''Economic Uses''' &emsp;One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts. &emsp;Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity and the Moon's orbit not being circular or in the same plane as the Earth and Sun cause some motion around the points. &emsp;Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can include supplying fuel and other supplies from space sources back to low orbit and to early interplanetary locations. These and other possible future activities depend on bringing costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels. &emsp;There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Large solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts. &emsp;The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 250 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources can make civilization sustainable for a very long time. :'''Transport from Other Orbits''' &emsp;Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then more chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years. &emsp;Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://www.nrel.gov/pv/cell-efficiency.html NREL Efficiency Chart]'''). The engines are low thrust, which would expose people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, the penalty for less efficient transport can be reduced. &emsp;Bulk materials mined from NEOs (Section 2.1) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed. &emsp;The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all of them would supply the widest range of raw materials to make the widest range of products. :'''High Orbit Production''' &emsp;Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, and active refrigeration if needed. &emsp;A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations. &emsp;Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth. &emsp;Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies. &emsp;Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, a small amount of carbon added to make a steel alloy, and then cast into basic shapes. &emsp;Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials. &emsp;Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction. &emsp;'''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. They are used in all kinds of industrial processes such as furnaces and cooling systems for thermal processing of materials. &emsp;In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing them is easier than trying to make them. :'''Living in High Orbit''' &emsp;After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities. &emsp;Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels. &emsp;Layered growth adds new pressure shells over compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved outwards to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed. ==='''8.4 - Phase 4C: Inner Interplanetary Locations'''=== &emsp; :'''Inner Interplanetary Features''' &emsp;These are orbits detached from the Earth's dominant gravity and go around the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun to 1.8 AU. This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, Earth, and Mars, and orbits around them. &emsp;Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time. &emsp;Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side. &emsp;As noted in section 2.1, there are nearly 32,000 known NEOs as of April 2023, and the number is currently increasing by 10% a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large. &emsp;Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions. &emsp;There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us. :'''Economic Uses''' &emsp;There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces. &emsp;Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally. :'''Inner Interplanetary Transport''' &emsp;The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion. &emsp;'''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit. &emsp;Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region. &emsp;Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal. &emsp;Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space. :'''Inner Interplanetary Production''' &emsp;Global primary energy consumption on Earth was 18 TeraWatts in 2021. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits. &emsp;Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it. &emsp;The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with. &emsp;If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain civilization. :'''Living Beyond Earth Orbit''' &emsp;Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time. &emsp;It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the it stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy. ==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''=== &emsp; &emsp;Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials. :'''Mid-Interplanetary Features''' [[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]] &emsp;This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2023 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.18 million other Main Belt asteroids, over 5600 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 12,500 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. It does not include Jupiter itself and the region within 20 million km of the planet (Section 9.4). &emsp;There are around 450 known comets in the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of it. &emsp;Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years on minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including a relay to avoid a direct path through the Sun. &emsp;The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun. :'''Economic Uses''' &emsp;This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable mining and transport to earlier locations as early activities. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization. :'''Mid-Interplanetary Transport''' &emsp;The same transport methods can be used in this region as for the inner interplanetary region. The main difference is adding reflectors to solar panels to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, they also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency. :'''Mid-Interplanetary Production''' &emsp;The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels benefit from reflectors to increase the light intensity. Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials. &emsp;Asteroids are covered in a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area or the whole asteroid can be covered to contain loose material. &emsp;More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs to factories for later production steps. For larger operations, a shell can surround the whole asteroid, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter. ==='''8.6 - Phase 4E: Outer Interplanetary Locations'''=== &emsp; &emsp;This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials. :'''Outer Interplanetary Features''' &emsp;Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2023 there are over 500 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also thousands of known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 3800 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered. &emsp;Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from 160 to 50K for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours. &emsp;The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the smaller ones 'minor planets'. :'''Outer Interplanetary Activities''' &emsp;This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is undertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them. &emsp;Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, they can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced. &emsp;As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region. &emsp;We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule. &emsp;If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop. ==='''8.7 - Phase 4F: Distant Orbit Locations'''=== &emsp; &emsp;The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'. :'''Distant Orbit Features''' &emsp;Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's dominance at about 100,000 AU. As of 2023 there are about 1200 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a similar number of '''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets. &emsp;A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region. &emsp;Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit. &emsp;Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years. :'''Distant Orbit Activities''' &emsp;Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens. &emsp;To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative at present. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must remain speculative at present. =='''9.0 - Planetary System Locations'''== &emsp; &emsp;The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative objects in the orbital regions, and third is the diversity of conditions found on and around the planets. &emsp;Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach them carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time. ==='''9.1 - Phase 5A: Lunar Locations'''=== &emsp; &emsp;Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our technical approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets. :'''Lunar Features''' &emsp;The Lunar region includes the Moon itself, and orbits with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field (Figure 9.1-1). The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it ([https://link.springer.com/article/10.1134/S0038094617070061 ''Gordienko, 2018'']). &emsp;The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location. &emsp;Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increase the total exposed surface area. [[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]] &emsp;Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same. &emsp;The Moon is tidally locked to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day. &emsp;Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth. &emsp;The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements. &emsp;The Moon is too small and warm to keep an atmosphere. With nothing to stop them, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface. :'''Economic Uses''' &emsp;The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits. &emsp;Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without using heavy equipment and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment. &emsp;Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space. :'''Lunar Transport''' &emsp;Early landings on the Moon would not have the support of much infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability. &emsp;Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location. &emsp;Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls. &emsp;If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency. &emsp;Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can supply shielding. With these people can live comfortably and safely. They are close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times. :'''Lunar Production''' &emsp;The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves. &emsp;Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease. &emsp;Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful. &emsp;Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore. &emsp;Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night. :'''Living in Lunar Locations''' &emsp;Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time. &emsp;We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control. &emsp;The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best. ==='''9.2 - Phase 5B: Mars Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between. :'''Mars Features''' &emsp;The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin. &emsp;Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding. &emsp;Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way. &emsp;The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition. [[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]] &emsp;The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass. &emsp;Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps. :'''Economic Uses''' &emsp;Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids. &emsp;Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available. &emsp;As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth. :'''Mars Transport''' &emsp;In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit. &emsp;Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more. &emsp;Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs. &emsp;When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface. &emsp;Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems. &emsp;Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred. :'''Mars Production''' &emsp;Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries. &emsp;Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first. :'''Living in Mars Locations''' &emsp;Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats. &emsp;'''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier. &emsp;An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection. ==='''9.3 - Phase 5C: Venus and Mercury Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with. :'''Venus and Mercury Features''' &emsp;The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU. &emsp;Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes. &emsp;Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively. &emsp;The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters :'''Economic Uses''' &emsp;Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed. &emsp;Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry. &emsp;It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun. :'''Venus and Mercury Transport''' &emsp;Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow. &emsp;For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines. :'''Venus and Mercury Production''' &emsp;Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away. &emsp;Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time. :'''Living at Venus and Mercury''' &emsp;Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term. ==='''9.4 - Phase 5D: Jupiter System Locations'''=== &emsp; &emsp;Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury. :'''Jupiter System Features''' &emsp;The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system. &emsp;Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations. &emsp;Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit. &emsp;The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth. &emsp;Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side. :'''Economic Uses''' &emsp;Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges. &emsp;The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility. :'''Jupiter System Transport''' &emsp;Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts. :'''Jupiter System Production''' &emsp;Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat. :'''Living in the Jupiter System''' &emsp;Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it. ==='''9.5 - Phase 5E: Outer Giant Locations'''=== &emsp; &emsp;The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around. :'''Outer Giant Features''' &emsp;The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars). &emsp;Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby. &emsp;Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips. &emsp;Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System. &emsp;Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible. :'''Economic Uses''' &emsp;The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now. &emsp;Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research. &emsp;If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time. :'''Outer Giant Transport''' &emsp;Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical. &emsp;Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be. :'''Outer Giant Production and Living''' &emsp;We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question. =='''10.0 - Interstellar Locations'''== &emsp; &emsp;The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance. &emsp;Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order. ==='''10.1 - Phase 6A: Interstellar Space Locations'''=== &emsp; :'''Interstellar Features''' &emsp;We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun. &emsp;Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average. &emsp;The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System. &emsp;The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is. :'''Economic Uses''' &emsp;We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities. :'''Interstellar Transport''' &emsp;Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development. &emsp;Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue. &emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now. :'''Interstellar Production''' &emsp;We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades. ==='''10.2 - Phase 6B: Stellar Locations'''=== &emsp; :'''Stellar System Features''' &emsp;We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them. &emsp;Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits. &emsp;The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks. :'''Economic Uses''' &emsp;Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars. :'''Exostellar Transport''' &emsp;Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources. :'''Exostellar Production''' &emsp;As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available. </div> 84lnc3w9pe1o40vpw05qoi6iowhxrpc 4668543 4668532 2026-09-04T10:16:25Z Danielravennest 13526 /* 7.0 - Other Earth Locations */ Update to end 4668543 wikitext text/x-wiki {{DISPLAYTITLE:<span style="display:block;text-align:center;font-size:100%;background:#d0f0f0;line-height:2.5em;font-family:'Georgia', serif";">Building Better Worlds in the 21st Century</span>}} <div style="font-size:125%;font-family:'Georgia', serif;"> :'''Dani Eder,''' :''The Seed Factory Project,'' :''6485 Rivertown Rd, Fairburn, GA, 30213'' :''email: danielravennest@gmail.com'' :'''Aug 2026''' '''Note:''' This report is an introduction to the ideas and work of the Seed Factory Project to date, which are covered in more detail in the two volume '''[https://en.wikibooks.org/wiki/Seed_Factories Better Worlds]''' set. <div class="nonumtoc">{{TOCright}}</div> =='''0.0 - Summary'''== &emsp; &emsp; National space programs to date have been based on the idea of going to one place at a time, like the Moon and Mars, for reasons like science and national prestige. Missions have finite goals and end when they are reached, so they don't include full development of the destinations. Instead, equipment and supplies have come from Earth, which kept costs high. Limited goals and high cost resulted in poor return on effort. &emsp;Our project proposes a broader approach of upgrading and extending civilization on Earth first, then full development of the entire Solar System, and eventually beyond it. It is based on the idea self-improving production systems that grow from a starter set of core equipment called a '''[http://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. Seed factories make more equipment for themselves mostly using local energy and raw materials. This is in addition to making finished products like any other factory. &emsp;Each location follows a growth cycle of self-improvement, making products for local use, trade with the rest of society, and becoming economically self-supporting. Once matured, a location sends elements of new starter sets to new locations. Locations are developed in logical progression from easier to harder and more distant. With proper planning locations can be sustainable, and even reduce unwanted side effects on the environment. &emsp;The very large physical space, materials, and energy resources beyond Earth enable large total returns. Since locations grow to support themselves, the net cost of such a program is only the initial start-up, so the return on effort is high. &emsp;It isn't in the scope of this report to provide detailed plans and hardware designs. What we describe is a possible path that leverages self-improving production methods. This is a step towards solving existing problems and building a better future, but much more work is needed for this idea. =='''1.0 - Problems of Past Space Programs'''== &emsp; &emsp;Governments have pursued space projects and programs, individually or in groups, for purposes like research, exploration, advancing technology, and prestige. While the results can be large, these efforts often suffer from outdated assumptions, high absolute costs, low relative return on effort, and a focus on single destinations. They have also often not leveraged new knowledge and technology. :'''Outdated Assumptions''' &emsp;Sending people to the Moon and Mars are stated goals of '''[https://www.space.commerce.gov/policy/national-space-policy/ US National Space Policy]'''. Significant annual budgets are being spent towards these goals, primarily on the '''[https://en.wikipedia.org/wiki/Space_Launch_System Space Launch System]''' and '''[https://en.wikipedia.org/wiki/Orion_(spacecraft) Orion Spacecraft]'''. The program concept to reach these goals is directly descended from plans first made in the mid-20th Century, such as '''[http://launiusr.files.wordpress.com/2011/08/mars_high.jpg Von Braun, 1954]'''. In the decades since, the technologies to be used have advanced, but the overall concept has not. In NASA's '''[https://www.nasa.gov/sites/default/files/atoms/files/journey-to-mars-next-steps-20151008_508.pdf Journey to Mars]''' (pdf file Oct 2015), the "mission" approach includes a number of assumptions: * It is a round trip for the crew, from Earth to Mars and back, with limited duration on the Martian surface. * Because the number of missions is small and they are short, it is not economic to develop many local resources. * Most or all equipment and supplies are launched from Earth. * High cost limits mission mass. So crews have to accept risks from radiation exposure, equipment failure, and lack of fallback positions. &emsp;Other goals like the Moon and orbiting stations have similar limiting assumptions, and are considered separately from each other. :'''High Cost''' &emsp;Government-funded and contractor-built space programs have little incentive on either side to finish promptly or keep costs under control. Project-oriented agencies want to continue their existence, but getting approval for new projects is hard. Contractors want to earn as much as possible, but winning new contracts by competitive bidding is uncertain. Politicians who decide on budgets want to preserve jobs in current locations, which works against cost savings. &emsp;The incentives on all sides have led to low cost estimates to get project approval. The tacit understanding is real costs will gradually be revealed as the work progresses. Spent funds deter cancellation as the full costs are revealed, because the funds would then have been wasted on an unfinished project. This pattern avoids frequent approval for a new project or competing for new work. The project schedules are instead stretched to fit real cost to available annual budgets. The result is a few big "can't fail" projects. Public failures risk losing funding or even an agencies' existence. So projects must be conservative, slowing progress. :'''Low Returns''' &emsp;In terms of exploration and science, a trip going to one place like Mars, and bringing back perhaps a few hundred kg of samples, is not much return for the effort expended. Relatively short round trips do not allow for full exploration of a landing site, much less a planet with the land area of Earth. Lack of refueling stations and reusable vehicles limits sample mass that can be returned to Earth, where researchers and laboratories can fully analyze them. &emsp;If most items have to be launched from the deep gravity well of Earth, then delivery costs will be high, and increase linearly with the number of missions. High transport cost limits weight, and in turn safety features like adequate radiation shielding, backup vehicles, and spare parts and supplies. To minimize risk, what is built must be both lightweight and near-perfect, which is also expensive. Despite that, crew risk is still high in absolute terms. The combination of low return and high cost have delayed going to the the Moon and Mars for decades. Such a program is now moving forward, but very slowly. :'''Focus on the Moon and Mars''' &emsp;The Moon is nearby, big, and obvious to everyone on Earth. So it was a natural first destination for human exploration. Venus and Mars are the closest major planets. Venus was originally thought a suitable destination because of similarity of orbit, mass, and gravity. However it turned out to be very hot from a thick CO2 atmosphere. Mars then became the next focus of human exploration by being the most Earth-like and nearby destination. &emsp;The focus on Earth-like conditions ignores that on Earth, even the best places require some technology to survive, and more of it to be comfortable and flourish. At a minimum clothing, shelter, and agriculture, are needed, with their underlying technologies. For most of the Earth technology like ships, planes, and snow crawlers are needed to reach places, and more technology if you intend to stay. &emsp;Mars, or anywhere else in space, also require technology to survive and flourish. But Mars does not require dramatically more than harsh places on Earth. For example the temperatures on Mars overlap those of cold places on Earth, such as Siberia and Antarctica. At the same time, the surface of Mars is harder to reach than other regions in space. Getting there needs more work than high orbits near Earth. The colder surface temperatures and 80% lower solar flux require more equipment than near Earth. A primary focus on the Moon and Mars over everywhere else is a mistake. They are large, interesting, and can be useful. So they should be part of future programs, but not to the exclusion of other places. &emsp;A new approach is needed that remedies the problems noted above. It should be based on up-to-date knowledge of the Solar System and new technologies developed since the mid-20th century. It should explore and use all of the many places in the Solar System. That includes the orbital and interplanetary spaces around and between natural objects. Finally, it should have high science and economic returns for the effort expended, including direct returns to people on Earth. =='''2.0 - New Knowledge and Technologies'''== &emsp; &emsp;Our new approach starts with a modern overview of the Solar System and its resources. We then introduce technologies to access and use those resources. Self-improving production systems that become highly efficient with "Smart Tools" is key among these. Our intent is to use these to benefit civilization and the Earth's environment. ==='''2.1 - The Modern Solar System'''=== &emsp; &emsp;The Solar System as of 1950 included 9 planets and their moons, plus about 2,000 asteroids in the belt between Mars and Jupiter. Materials would be available on the surfaces of the Moon and Mars, but required significant fuel to take elsewhere. So they would only be used locally. Energy would come from solar-powered steam turbines, or a little later from fuel cells. These ideas are quite outdated and becoming more so each year. &emsp;Today we can inventory the known Solar System in terms of its material and energy resources. Such '''[https://en.wikipedia.org/wiki/Natural_resource Natural Resources]''' on Earth are well-studied and understood. Most people today know about the Moon, the other major planets, and that some of them also have moons. So here we will mainly review the more recently found and less familiar parts Solar System. &emsp;In terms of resource access, the smaller members of the Solar System all take less energy to land on and remove materials from than Earth. They also have greater surface area relative to mass and lower gravity, making extraction easier. :'''Material Resources''' &emsp;'''[[w:Near-Earth_object|Near Earth Objects (NEOs)]]''' are those which come closer than 1.3 AU to the Sun, where 1 AU is the Earth's average solar distance. Mars' orbit ranges from 1.38-1.67 AU, so NEO's are "on the way there" in terms of solar distance. In 1950 time there were 55 such objects known, of which only 13 were asteroids. The rest were comets, which are easier to find when they have large tails. The asteroids were ignored because their orbits were not ideal, and mining them was still a subject for science fiction. &emsp;This has changed dramatically. As of August 2026 there are over '''[https://cneos.jpl.nasa.gov/stats/totals.html 42,000 known NEOs]'''. The number has increased exponentially since about 1980 as better telescopes have been used to find them. These searches are partly driven by the impact risk such objects pose to Earth. Of those found so far, 875 are asteroids 1 km or larger in size, a nearly full count. 11,700 are larger than 140 meters out of an estimated 27,000 total. The rest are smaller, with perhaps 4 million to be found larger than 10 meters ([https://iopscience.iop.org/article/10.3847/1538-3881/aa8036 '''Trilling, 2017''']). 124 of them are comets, which lose material when close to the Sun. Just the largest handful of NEOs have a combined mass of 50 trillion tons, which is roughly a thousand years of mining activity on Earth. &emsp;The much larger numbers known today means more of them are in orbits easy to reach from Earth or on the way to Mars. Very efficient '''[https://en.wikipedia.org/wiki/Spacecraft_electric_propulsion Electric Propulsion]''' and other technologies unknown in 1950 time now exist. They make it possible to reach NEOs and work with them remotely from Earth, as recent asteroid and comet probes have done. Early research has been done on '''[https://en.wikipedia.org/wiki/Asteroid_mining Asteroid Mining]''' and '''[https://en.wikipedia.org/wiki/Space_manufacturing Space Manufacturing]''' to make use of their materials. Using NEOs as sources of propellants, supplies, and other products would greatly reduce what you need to bring from Earth for space projects. &emsp;Beyond those that come close to Earth, the '''[https://www.minorplanetcenter.net/mpc/summary Total Number]''' of known objects in the Solar System, as of August 2026, is 1.56 million. This is about 780 times what was known in 1950. The list of such '''[https://en.wikipedia.org/wiki/List_of_minor_planets Minor Planets]''' has grown rapidly as new dedicated telescopes and search techniques were applied, and is expected to increase by another factor of 10 now that the '''[https://en.wikipedia.org/wiki/Vera_C._Rubin_Observatory Rubin Observatory]''' has begun operating. [[File:Inner_solar_system_objects_top_view_for_wiki.png|thumb|right|600x600px|Figure 2.1-1 - Inner Solar System objects.]] &emsp;91.7% of known objects are in the '''[https://en.wikipedia.org/wiki/Asteroid_belt Main Asteroid Belt]''' between Mars and Jupiter (Figure 2.1-1), but many thousands of others are in orbits throughout the Solar System. The '''[https://minorplanetcenter.net//iau/lists/MPLists.html Minor Planet Center]''' maintains information about all of them. The high proportion in the Asteroid Belt is a function of distance, not absolute numbers. Brightness decreases as square of both distance from the Sun and the telescope. So discoveries are strongly biased to nearby objects, and to only finding the largest ones at greater distances. But total number of objects goes up about 3,500 times when the size goes down by 100 times. So there are many more smaller objects still to be found. &emsp;Many of the objects discovered beyond Neptune, at 30-80 AU, have '''[https://en.wikipedia.org/wiki/Orbital_eccentricity Eccentric Orbits]'''. These objects tend to be found at the close end of their orbits, when they are bright enough to see. This additional discovery bias means there are many more like them waiting to be found, but are currently in more distant parts of their orbits, or never come close enough to find with current telescopes. The August 2026 count of about 8300 such distant objects is limited to those larger than 100 km for the farthest ones. As search methods improve, many more such objects will be found at all distances and more of the smaller ones. &emsp;'''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near-Parabolic Comets]''' can reach distances measured in light-years, or even escape the Solar System entirely. Aside from them, the known size of the Solar System has increased 168 times since 1995, from 49.3 AU for Pluto to 8285 AU for the maximum distance of Centaur object '''[https://minorplanetcenter.net/db_search/show_object?object_id=2015%20FW539&commit=Show 2015 FW539]'''. Some of these objects are quite large (Figure 2.1-2), and there is even a suspected major planet still to be found. Although the absolute distance of these objects is very large, the energy to reach them has a finite limit. The five planetary probes '''[https://en.wikipedia.org/wiki/List_of_artificial_objects_leaving_the_Solar_System Leaving the Solar System]''' already have more energy than needed to reach anything in the Solar System. The practical limit is set by how long it takes to reach and use them. [[File:Trans-Neptunians_Size_Albedo_Color.svg|thumb|right|512x249px|Figure 2.1-2 - Large Trans-Neptune Objects.]] &emsp;The inventory of Solar System objects is now known to be incomplete, especially for small and distant ones. Despite this, there is detailed knowledge of the history, composition, and geology of some of its members, and this is constantly improving. We expect this to continue, especially from future mass-produced probes with efficient propulsion and refueling capability. Many more objects can then be visited than the current handful per decade. As more is learned about these objects, better plans on how to use them can be made. But even with current knowledge, a start on such plans is possible. :'''Energy Resources''' &emsp;The Sun is an immense energy source, producing 20 trillion times what human civilization uses today. That energy streams in all directions, not just at the objects which orbit it. Mining and building on the surface of Solar System bodies is convenient, but they typically gather half or less of the available solar energy. This is because of day-night cycles, geography, and in some cases atmospheres and eclipses from other bodies. &emsp;It takes significant energy to move materials from the larger bodies to open space, but once there, solar energy is available up to 100% of the time. For example, with current rockets it takes about 480 MJ (134 kWh) to raise 1 kg from Earth to an orbit in full sunlight. Once there, 1 kg of modern space solar panel can extract that much energy in 56 days, but lasts about 100 times longer. Most solar system bodies are smaller than Earth, and there are more efficient ways to lift materials than today's rockets. So from a net energy standpoint it often makes sense to work in open space. &emsp;Solar cells were only 6% efficient in the mid-20th century, so solar-driven steam turbines were part of the original Mars mission concepts. Solar cells are now 47.6% efficient in the laboratory and 31% for space power applications, and continue to '''[https://en.wikipedia.org/wiki/Solar-cell_efficiency Improve]'''. Using lightweight concentrating reflectors, they can be useful even in the outer Solar System. Where heat, rather than electricity, is needed, direct solar exposure or using mirrors can can reach 80% collection efficiency or higher. &emsp;In addition to solar, there are various energy sources that are more limited in scale and availability. These include nuclear fission and potentially fusion, geothermal, and wind. On Earth we use hydroelectric and chemical combustion, but those are not generally available elsewhere. The orbital motion and gravity fields of bodies are not energy sources, but their potential and kinetic energy can be used in various ways. The Sun's output alone, which will last for billions of years, plus raw materials found all over the Solar System, are enough to sustain civilization and the Earth's environment. :'''The Illusion of Scarcity''' &emsp;Current civilization is actually quite limited, even on Earth. The urban, forest, and farm land used in any significant way amounts to only 13.5% of the planet's surface. The remainder are oceans, deserts, and ice caps that are only traveled through or barely used. Of the part that is used, the average depth is equivalent to a thin surface layer. &emsp;The world's biosphere (about 2000 Gigtons) plus the human built environment (about 1100 Gigatons) averages about 6 kg/m<sup>2</sup>, while the Earth's total mass to area is 11.71 billion kg/m<sup>2</sup>, or a ratio of one part in 2 billion. At the density of water, the biosphere plus civilization amounts to a 6 mm (1/4 inch) thick layer across the planet's surface. If we only consider the fraction of the planet used, the equivalent thickness is 7.4 times higher, or 4.4 cm (1.75 inches). If this number seems small, it is because most of us live in places that are built up. Life and civilization are very unevenly distributed. Cities and river dams, for example, have much higher built mass per area, while tropical forests can reach 25 times the average biosphere density per area. &emsp;The perceived scarcity of resources is thus an illusion, because we as observers live in the more built up places. Current civilization actually uses only 2 billionths of the planet's mass and one ten-thousandth of the available energy flow. Photosynthesis uses about 13 times more of the available energy, but still only about 1/8% of it. In a literal sense we are only scratching the surface of our own planet. When we consider the whole Solar System, the available resources increase by hundreds of times in mass, and two billion times the energy that reaches Earth. &emsp;A larger fraction of smaller bodies is accessible. On Earth pressure and temperature limits going too deep. Bodies with lower gravity and less hot interiors can be accessed more deeply or all the way through. The much higher total energy across the Solar System would also allow reprocessing and reusing what we consider waste products today. Scarcity would not be a problem if these vast untapped resources could be used. ==='''2.2 - New Technologies'''=== &emsp; &emsp;For our approach we want to use the best available production and space technologies, plus some new ones that can be developed in the near future. These include seed factories, production networks, space technologies that are already in use but not yet in government plans, and new ones for space not yet fully developed. This is in addition to more standard existing technology. :'''Seed Factories''' &emsp;Production systems which use part of their output for self-improvement can grow exponentially. Production can start with simpler tools, but modern technology like computers, communications, automation, robotics, software, and artificial intelligence lets them become more efficient. &emsp;We call a starter set of tools and machines capable of self-improvement using human labor and other energy inputs a '''[https://en.wikibooks.org/wiki/Seed_Factories Seed Factory]'''. They grow to become mature factories by analogy to plant seeds, which grow into mature plants that can produce more seeds. Seed factories can improve in several ways: * Making parts for additional copies of current equipment. * Making new types of items not in the starter set, and * Making different versions of existing equipment (larger, more accurate, etc.). &emsp;While modern technology can reduce the labor needed, some people are still needed today to operate the factory. Like any other factory, some part of its output is for sale or trade. This helps cover the initial cost and paying for items it can't make internally. &emsp;The improvements increase production capacity and the range of products that can be made. Since the capacity to grow increases with the size of the factory, the growth is exponential. The starter or added equipment can include power generation, mining, and materials processing, so the factory can eventually self-supply and self-power from local resources. A seed factory may not use any local sources to start with, but can approach 100% as it matures. Some parts and materials would likely be too hard to make, or too rare locally. So even for a mature factory those would still come from elsewhere. &emsp;When production at a given location is mature enough, it can start supplying parts for, or complete new starter sets. These can be set up in the same area, or sent to new locations, repeating the growth process. Internal growth and making new starter sets highly leverages the initial cost. It fundamentally changes the return/cost ratio of projects for the better. :'''Locations and MakerNets''' &emsp;When we refer to "locations" we mean a single environment type, with equipment and people that are close enough that they can work together and trade physical items easily. On Earth that might be a single metropolitan area. In less developed places it might be smaller in size from lack of easy local transport. Equipment in a given location may have different owners or control systems, but can still coordinate their work and cooperate on larger projects. &emsp;The collection of coordinating operations forms a network, which we call a '''MakerNet''', after the modern '''[https://en.wikipedia.org/wiki/Maker_culture Maker Subculture]''', who make things. The network has multiple communicating nodes, each of which includes a set of equipment and people who can do tasks. A MakerNet can extend over multiple locations, since data transfer and remote control can operate over long distances at low cost. &emsp;Physical transportation of people and supplies is not as easy, so we distinguish separate locations within a larger network. To the extent local sources can be used, it would lower transport costs. So there is an incentive to ship lightweight items like information over bulk materials. :'''Space Technologies''' &emsp;New or improved space technologies have been developed since the mid-20th century, but not fully included in existing program plans. These include: * '''Electric propulsion''' - which uses many times less propellant than chemical rockets. Using large tanks of propellant to deliver relatively small payloads has strongly limited space projects in the past. * '''Better Materials''' - There are new and significantly improved engineering materials, including high strength fibers, and composite materials that use them. Production methods for them have also improved. * '''Closed Loop Life Support''' - has been developed which recycles supplies using mechanical equipment or biology. &emsp;Additional technologies that were not specifically developed for space, but can be used for it, include small and powerful computers, their software, other kinds of electronics, robotics, automation, high speed communications, and most recently artificial intelligence (AI) applications. &emsp;Many other space technologies have been proposed, but not yet fully developed. This is either from lack of money and resources, or not enough scale yet to justify them. MakerNets and seed factories can potentially overcome these limitations. Our second volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' collects current and future space technologies that we know of, so they can be considered for future planning and projects. Some new transport examples are ground-based accelerators and air-breathing engines for reaching orbit, and '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Rotating Skyhooks]''' for artificial gravity and orbit transfer. &emsp; =='''3.0 - New Program Concept'''== &emsp; &emsp;For discussion purposes we refer to this as a program, with component phases and projects. But we do not expect it to be under centralized government direction. Instead it would include independent businesses operated for profit, public/private partnerships, incentive prizes, some government effort, and other project methods. &emsp;This section summarizes our goals and approach. The rest of this report, and our other documents, provide more details. This is a work in progress. It is by no means a finished proposal or a final design. It likely never will be, as the future brings new discoveries and technologies. We have identified new goals and methods, and made a start at the details, but much more work is needed. Our work is open-source, so feel free to build on it, provide feedback, and contribute your own ideas. :<u>'''Goal 1 - Benefits on Earth'''</u> &emsp;Existing government space program goals are mainly for defense, science, exploration, and national prestige. They have limited budgets because they compete with other government priorities. Our approach is to go beyond these limits, to include the full range of civilized activities, both on Earth and in space. About billion times more people live on Earth right now than in space, and their needs are much larger and more immediate. So our first goal is to address problems on Earth, starting with easier ones, then moving towards the more difficult. &emsp;Competition and the profit motive have often demonstrated faster and cheaper results, so we want to take advantage of them. If there is money to be made, there is a vast pool of capital available beyond government budgets. The $429 billion '''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Global Space Economy]''' in 2025 was already mostly commercial activity, and 17.6 times NASA's budget. &emsp;The original '''[https://ntrs.nasa.gov/citations/19830007077 1982 Version]''' of the seed factory idea was intended to enable large space projects by production in space. But the laws of nature and how technologies work are the same everywhere. If networks of exponentially improving and multiplying systems can work in space, they will work on Earth too. The operating environments, local raw materials, and energy sources may differ by location, but the underlying principles are the same. &emsp;The early versions of seed factories would most likely be built in higher income areas. These are the easiest places to start because equipment, materials, and energy sources are readily available, as are people who know how to work with them. Conventional jobs have always been at risk from economic and business changes. In the future they may be permanently replaced by the same kinds of advanced technologies seed factories can use. Self-built and self-owned production can supplement or replace conventional work for hire. &emsp;As the owners of production capacity, people can more securely meet their basic needs. They get the benefit of the output regardless of how much labor is replaced by technology. Self-improving systems can grow to mostly copy themselves, so they would become low cost to build. They can also become highly automated and use renewable energy, making them low cost to operate. &emsp;A growing network of productive systems can then be extended to lower income areas on Earth. This allows bypassing fossil fuel development and the problems it creates, while gaining the comforts, health, and safety found in higher income areas. The systems can be further extended to difficult and extreme locations on Earth that are currently unused or barely used. This would lessen scarcity of raw materials, further lowering cost of operation. These expansions and upgrades should be done with planning and care to prevent new environmental side-effects. &emsp;Although we describe a progression from easier to harder locations, a given type of location does not have to be completely developed before starting the next category. Rather, their starting points are staggered in order of difficulty, and their development then continues in parallel. :<u>'''Goal 2 - Benefits from Space'''</u> &emsp;Economic and environmental reasons are enough for building self-improving systems on Earth. Once experience with them is built up, such systems can then be used in a series of locations in space. There are several reasons for this: * Access to materials on Earth is limited vertically because temperatures and pressure increase with depth. * Solar energy in nearby space outside the Earth's shadow averages 7 times more than the Earth's surface because there is no night, weather, or atmospheric absorption. Close orbits range from 0 to 40% shade, so still have at least 4.2 times the available energy * Different and much larger amounts of materials are accessible, which can be used without affecting the Earth's environment. * There are a variety of risks to civilization on Earth, both natural and self-created. Some of them can be reduced by projects in and expansion into space. &emsp;So our second goal is to make use of space to bring benefits to Earth, and later extend civilization and the biosphere into the space environment. &emsp;Space projects would logically start with easier and nearby locations, then move to farther and more difficult ones in sequence. Developing a new location begins with imports of equipment and starter materials from Earth or previous locations. Core production and resource extraction is built up, then expands to other kinds of industry. Later deliveries of materials, products, and services helps expand operations. &emsp;Remote control is feasible when distances are short, otherwise command-response times can be long. So some people may be needed on-location to set up and maintain equipment. Suitable locations can build up habitats beyond this for other reasons. Once built up enough, an existing location, along with previous ones, can serve as staging points for the next ones, supplying transportation, starter sets, and other items as needed. &emsp;Space locations vary in environment, raw materials, and energy resources. So a trade network among them and the rest of civilization makes sense, just like it does on Earth. Each location takes advantage of local conditions to do what it can do best, and trade with others as needed. Through trade, locations can become economically self-supporting and not a cost sink for society. :<u>'''Program Advantages'''</u> &emsp;Our new approach has a number of advantages: * It addresses the frequent criticism of space programs that there are problems here on Earth that need solving. So we place solving economic and environmental problems first, ahead of large space projects. * Self-improving and highly automated production lowers the cost of rocket factories and launch sites on Earth. It also lowers how much you need to launch by using local resources already in space. The combined result is much cheaper space projects. Activities that are currently uneconomic can become viable. * In terms of science and exploration, access to the whole Solar System is better than just the Moon and Mars, as interesting as they may be. Locations develop their local resources, so they can sustain long-term operations, rather than being limited to short term missions and single landing sites. * A continuing development program much safer than isolated missions. A network of many locations can keep backup supplies and equipment available, and they can be delivered more quickly. Automated and remote controlled transports can deliver supplies and equipment before the first people arrive, and regularly afterwards, providing a buffer against problems. * Lower production and transport costs means more robust designs can be used. Current space systems minimize weight to save on launch from Earth. Robust designs will have better safety margins, lowering crew risk. Bulk mined materials, either in raw form or as end products, can provide radiation shielding during long missions. Production capacity at the destination, such as the Martian surface, enables making spare parts and replacement supplies on the spot, bypassing long delivery times from Earth. ==='''3.1 - Program Sequence'''=== &emsp; &emsp;Our program concept is organized into a number of phases and smaller individual projects. There are several reasons for this: * The phases have different scales of operation, or use locations with different operating environments, raw materials, and energy resources. They will need different designs suited to them. * We intend each phase to economically justify itself, and provide revenue and benefits to support later ones. It would take too much funding for such a large program otherwise. * New technologies need more development before using them for seed factories, makernets, and various space projects. This will not happen all at once. Splitting up the research and development across phases and projects is more manageable. * We can lay out a long term program now, but we don't know what new technologies will be invented in the future, or when. Later phases can be identified for guidance and direction, but it makes sense to concentrate on the early ones for now. Details of later phases can be left flexible until their time approaches. [[File:Phase Starts vs Time.png|thumb|right|768x480px|Figure 3.1-1 - Program Phases vs Time.]] &emsp;In general, phases don't end, but rather build on previous ones and operate in parallel once started (Figure 3.1-1). For example, mature industrial factories will continue to operate once new locations are set up elsewhere. The phases have a logical sequence, where later steps generally depend on earlier ones. We have identified seven main ones numbered 0 to 6, shown in different colors, with a number of sub-phases indicated by an added letter (4A, 4B, 4C, ...). [[File:Program Phases.png|thumb|right|768x480px|Figure 3.1-2 - Logical sequence of program phases.]] &emsp;Figure 3.1-2 diagrams the logical relationship of phases. It does not show all their relationships, since that would make the diagram too complicated to read. Their general order is from easier to harder, and from local to more distant. Each phase typically involves multiple projects and locations. For example Phase 5B - Mars Surface Locations, would eventually include many projects across the planet. Most locations will evolve across time by expansion and upgrade. The phases are summarized in the next two headings (3.2 and 3.3), and then in more detail in report sections 4 through 9 below. ==='''3.2 - Phases 0 to 3: Earth Locations'''=== &emsp; &emsp;Our program in the broadest sense changes the goals from specific destinations, like a mission to Mars, to improving and extending civilization and the biosphere throughout the Solar System and beyond. We start with our own planet first, because there are large and immediate needs here. So the first four phases apply to Earth. &emsp;Much of human civilization is unevenly developed and unsustainable, and the vast majority of people will live here for many decades. Starting on Earth allows getting experience with technologies that will later be used in space. It is easier and less expensive to apply them here first, and they can produce economic benefits to sustain themselves. &emsp;This program would widen participation from national space programs, to the much wider base of all of civilization. Government space programs are only about 0.08% of gross world product, and only part of that is devoted to exploration and science beyond Earth. Being more inclusive increases the available inputs for projects, and makes faster progress in the end. The first four phases are: :&emsp;<u>'''Phase 0: Research and Development'''</u> - The first major phase performs necessary research and development (R&D) for production technologies to be used on Earth, later adaptions to space, and ones used only in space. It also develops transport, habitation, and service technologies as needed for the particular conditions of different locations. The R&D work is spread out in time according to which phases, locations, and projects particular designs are needed for. Some later R&D, such as testing hardware in the operating environment, would occur in space. Since a lot of production technology already exists on Earth, the earliest R&D will mainly be selection of what to use and in what order. Modified and completely new tech will be worked on later as needed. :&emsp;<u>'''Phase 1: Starter Locations & Network'''</u> - This phase builds the first sets of seed factory equipment and begins the self-improvement process. Phase 1 equipment can start small, such as home and hobby use, which makes it affordable. Individual equipment items or small groups of them can be located at home or shared work spaces. A network of people directly or electronically coordinate their work to make items for each other, build new network nodes, and start to accumulate larger shared items. New locations may start with less than full starter sets, and build up to making internal improvements. Phase 1 locations are typically in developed and populated areas with access to the materials, energy sources, and equipment needed. :&emsp;<u>'''Phase 2: Distributed and Industrial Locations'''</u> - One of the ways a seed factory can grow is to use existing equipment to make parts for larger ones. This leads from home and hobby size, to small business, commercial, and industrial scale equipment and locations. At smaller scales it is reasonable to gather the full range of equipment and people in one place, and make a wide range of products. At larger scales, the equipment and their operators tend to become more distributed and specialized, and serve larger markets. But they can still coordinate on projects and products. :&emsp;<u>'''Phase 3: Difficult and Extreme Locations'''</u> - This phase begins extending life and civilization to the parts of the Earth where there is very little or none today. They are unoccupied partly because the environment conditions are more difficult. Self-improving production allows operating affordably in such places. New systems would be set up and grow serially from moderate to difficult and more extreme environments. Technologies like automation and remote control allows machines to operate where it is not feasible for people to stay. :&emsp;A major direction for expansion is vertically, to access additional resources and physical space. This goes beyond the fairly thin current layer of activity near the Earth's surface. We can expand the total active area by 7.4 times, but height can be increased hundreds or thousands of meters both up and down. This enables many times more usable volume and materials. ==='''3.3 - Phases 4-6: Space Locations'''=== &emsp; &emsp;The later parts of our program involve developing and using space to benefit Earth. It would be based on experience gained in the earlier phases with self-improving systems, which can make more such systems. It is also based on the larger production capacity developed in Phases 2 and 3. This capacity enables building transport systems like rocket factories and launch sites, and plus equipment and starter sets to be used at the new locations. The experience in working in remote and hostile environments in Phase 3 can also be applied to the remote and hostile environments of space. &emsp;At a civilization level this accesses the much larger physical volume, energy, and material resources beyond Earth. Some heavy industry can eventually be moved to space locations, protecting the Earth's environment. It can also decrease societal risks by, for example, diverting hazardous asteroids, or filter parts of the solar spectrum to reduce overheating the planet. &emsp;As in the earlier phases, we propose a step-by-step approach: extracting local resources, building up core production, diversifying industries, then sending starter sets to the next locations. Locations become physically and economically self-supporting, allowing moving forward to new ones. The three later main phases are: :&emsp;<u>'''Phase 4: Orbital Locations'''</u> - Locations in this phase share being in orbit around Earth, or in open space between large bodies. This is in contrast to the the surface or closely bound bound orbits around those bodies. The sub-phases progress from lower to higher Earth orbits, then in distance from the Sun from closer to more distant. :&emsp;The main local raw materials are from asteroids and other small bodies, but we can import additional material from Earth, the Moon, and other places. We can also mine a limited amount of the Earth's upper atmosphere and the "debris belt" of discarded space hardware. Solar energy is abundantly available in the open spaces near the Sun, but other solutions become more important in the farther areas. The limit to this phase is the farthest orbits bound to the Sun. :&emsp;<u>'''Phase 5: Planetary System Locations'''</u> - These locations are orbits tied by gravity to the Moon, major planets, and their larger moons, or on their respective surfaces. The sub-phases are by distance starting with the Moon, then to the inner and outer planets. Although orbital and planetary locations share features like vacuum or atmospheres we can't breath, they differ in having significant gravity wells or surface gravity, and in having night or time in shadow from the Sun. These differences require different designs, so we place them in a separate phase. Mars is part of this phase, but compared to current space programs it has long-term and larger scale exploration and development, rather than a few short missions to specific spots. :&emsp;<u>'''Phase 6: Interstellar Locations'''</u> - The last major phase of extending life and civilization includes the space between stars and locations bound to other stars. This is mostly speculative right now because it is far away in time. A lot new technology will likely be needed, and what will already be developed by then is unknown. But we see no reason to stop just because the edge of our Solar System is reached. For now, technical feasibility limits how far projects can go. But that may change in the future, so we include this final phase as a place-holder, and to provide a direction to plan for. &emsp; =='''4.0 - Seed Factory Technology'''== &emsp; &emsp;Our program leans heavily on the idea of "seed factories", which are self-improving production systems which grow from starter sets. We note some details in this section, but more on the subject can be found in '''[https://en.wikibooks.org/wiki/Seed_Factories Volume I]''', and in information about '''[https://en.wikibooks.org/wiki/User:Danielravennest/SFP Our Project]''', which is attempting to develop the technology. &emsp;'''Tools and Growth''' - Our ancestors used tools to make more tools at least as far back as the Paleolithic, 2.6 million years ago, when '''[https://en.wikipedia.org/wiki/Hammerstone Hammerstones]''' were used to flake other stones to produce an assortment of tools. Locally found objects like rocks and sticks were likely used even earlier, but left no identifiable evidence. In modern times we use metal-cutting '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' to make parts for more machine tools, plus all the other kinds of machines used to make other products. &emsp;Any collection of tools and machines can be used the conventional way to provide products and services to others. The income can then be used to buy new equipment. What is new about seed factories is using starter sets purposely designed to make parts for more tools and equipment to improve the set. A starter set can produce its own energy and extract raw materials, or rely on outside supplies to operate. Once set up, the starter set can improve itself internally in several ways: * <u>Replication</u> - making copies of existing parts and equipment, * <u>Diversification</u> - making parts for new equipment not in the current set, * <u>Quality</u> - making items stronger, more accurate, or from different materials, and * <u>Scaling</u> - making different size parts (usually larger) than the current ones. &emsp;A relatively small starter set can then grow to produce a wide range and large quantity of products. This can optionally include parts for new starter sets. A starter set may not be able to copy most of its original parts at first, because it lacks the right equipment. But after following a planned series of upgrades it can gain the ability to reproduce all or most of the original set. Biological plant seeds follow a similar growth cycle to make more seeds, which is why we call the starter sets "seed factories". Biological plants can even be part of a starter set, such as using trees to provide lumber and also grow more trees. &emsp;The seed factory approach substitutes information, like plans and instructions, for some part of a mature and more capable factory. On Earth this reduces the cost to get started. For space projects it reduces the starting weight and size, making delivery to distant places easier. With modern technology, the information can be stored and transmitted efficiently, and '''Smart Tools''' (software, robots, etc.) can do much of the work. However, growing from a starter set will take more time than immediately building a finished factory. :'''Self-Replication and Distributed Production''' &emsp;A seed factory is not the same as a '''[https://en.wikipedia.org/wiki/Self-replicating_machine Self-Replicating Machine]'''. First, a number of different materials and production processes are needed to make modern equipment. These are best carried out by separate tools and machines designed for each task. For large-scale production the set of equipment will be closer to commercial building size, and better described as a factory than a single machine. &emsp;Second, a starter set can be much smaller and simpler than the mature factory. We think of it as the seed from which a factory grows. But a plant seed is not the same as the mature plant, so this is not direct replication in the sense of making an exact copy. If a mature factory can produce new starter sets, it is indirect replication by a cycle of growth and then making copies. This is more like plants and animals reproducing by way of smaller and simpler offspring. &emsp;Third, starter sets and the mature factories are not generally able to make everything they need by themselves. At first they will lack all the right equipment. Even when mature there will likely be items too hard to make, or the materials too rare locally. Those need to be supplied from elsewhere. Since they cannot do it all by themselves, they are not fully self-replicating. &emsp;Traditional factories and workshops had to bring the equipment and people to one place, because it was the only way to coordinate the work. With modern computers, software, and communications this is no longer required. Equipment in different places can work together, and people can operate them remotely. So a modern view of factory capacity is the ability to make things on a regular basis. The people and equipment may be in one place for efficiency, but they don't have to be - they can be partly or entirely distributed. What's important is they can work together to make desired products. :'''Operations and Functions''' &emsp;Production in general involves a number of processes, which turn can require multiple steps. A seed factory may not be able to do all of them at the start, but they can be added in steps as it upgrades. Process categories include: * <u>Control of operations</u> - collecting data and sending instructions to the various people and equipment. * <u>Supply power</u> - this includes electricity, thermal heating, and other sources. * <u>Extract materials</u> - mining and harvesting raw materials. * <u>Process materials</u> - converting raw materials to usable inventory. * <u>Fabricate parts</u> - use inventory stock to produce finished parts. * <u>Storage and protection</u> - house inventory in various stages of production, plus protect equipment and inventory from local conditions when needed. * <u>Assemble elements</u> - combine finished parts and materials to produce completed products. * <u>Grow organics</u> - such as food and timber. These can grow on their own given the right conditions, making it different from other kinds of production. &emsp;Most production flows need materials and energy to work with, in addition to tools and machines. In developed areas these can come from outside sources. In less- or undeveloped areas, this may be difficult. Even in developed areas it may be more economic to self-supply. Production systems can start with or build their own mining and processing equipment for materials. They can also start with or build energy sources, such as wind turbines and solar farms. &emsp;Once operating, production generally uses up supplies like lubricants and drill bits, and needs replacements for parts that wear out. These can either be part of the starter set inventory, or supplied from outside as needed. Over time, a growing system can start to make these items for itself. In order to keep growing and improving, a given system has to make or import items faster than old ones wear out. It also needs enough outside supplies of energy, materials, parts, and other items that it can't make internally. &emsp;We don't expect mature factories to reach 100% self-sufficiency. Some items will likely come from other places, in exchange for surplus products and services supplied to others. We also don't expect fully automated production at current levels of industrial technology. Some people will be needed to use the equipment and do tasks only people can do. Those people can be physically present, or in some cases control operations remotely. &emsp; &emsp; =='''5.0 - Phase 0: Research and Development (R&D)'''== &emsp; &emsp;The rest of this report provides more detail on our program phases and sub-phases. It does not provide complete plans and hardware designs both for length and because they haven't been defined yet. We also can't claim this is the best possible program. We present it as a ''<u>possible</u>'' path that leverages self-improving production methods. Much more work is needed on this idea, and we invite other people to help. Where next steps have been identified, we note them below, in our two volumes on seed factories and space systems, and our other documents. &emsp;A vast amount of knowledge, technology, skills, and products already exist. Where they do, we can simply select and use them. When new arrangements of existing items, or modified or completely new items are needed, '''[https://en.wikipedia.org/wiki/Research_and_development Research and Development]''' (R&D) is the technical method to create them. It is a set of innovative activities undertaken by groups of individuals, corporations, industrialists, or governments. This program phase is numbered zero because it is preparation needed to make the later phases possible. The R&D sub-phases are numbered according to the later phases the work applies to. So sub-phase 0.1 would be R&D work that applies to Phase 1: Starter Locations. :'''R&D Goals''' &emsp;Our program needs research and development because we are attempting a new way to organize projects using starter sets and self-improvement. This will likely need some new equipment and processes for particular environments, especially those in space. So the goal of this phase is to supply ready-to-use technology and designs. Since R&D is the first program phase, it can't evolve from previous ones. Instead it must start with existing items like buildings, tools, machines, design methods, and skills. &emsp;Developing new locations is not the main purpose of this phase, like it is for later ones. Places like offices, industrial space, and test areas will be needed for the R&D work, but can start with existing ones. In later phases, testing for unique environments may be easier to do in those environments rather than building simulators. So some later R&D work may move to difficult locations on Earth, or to locations in space. :'''Production by R&D Phase''' &emsp;Some production will happen in the course of setting up R&D locations, testing new equipment designs, and figuring out the best operating flows. But that is not the main goal. Such outputs can be used later, but they are secondary to the main goal to provide usable designs and processes for later phases to use. &emsp;Some of the newly designed equipment that is built for testing may be kept and used internally afterwards. This would help expand and upgrade the R&D locations themselves, and serve as a demonstration of the self-improvement process. Other finished equipment, products, and services generated during R&D can get sold or traded to fund further R&D work. Feedback from practical use of such items can help improve the designs. &emsp;Final designs should have a long operating life if they are to be useful. So early prototypes should aim for longer lives than the time needed to test them. Prototypes with remaining useful lives can be delivered and used in other locations for later phases and projects. Lastly, the R&D phase may produce some final versions of starter set equipment. These can be used directly in later phases. :'''Sharing Our Results''' &emsp;We want our work to have the most benefit for the most people. So we plan to eventually open-source the designs, so that anyone can use and improve on them. They may be temporarily kept private to help finance additional R&D. In general individual machines, factories, and the products they produce, would be separately owned, either privately or institutionally. &emsp;The R&D Phase may develop new methods and technology to use for itself in the course of working towards later phase designs. We would also make such new developments available for others to use. An example is full resource accounting, a method to track all the inputs and outputs of a system the way financial accounting tracks money. In order for projects to be functional and sustainable, they should account for everything, including scarce resources and all process wastes. If possible these should be recyclable or usable elsewhere, but you can't do that if you don't identify and track them. :'''R&D Tasks and Projects''' &emsp;The R&D work is divided up according to the later phases and projects that need it. Items used by multiple phases are assigned to the first one they are needed for. Later phases start at different times. So the R&D work for each one is started far enough ahead that it is ready when needed. &emsp;New designs and technology are likely needed even for the last phase. So we expect R&D work will continue for the whole life of our program. In addition to internal R&D work, we expect technology to make progress outside our program. So part of the R&D phase is staying current with outside developments, so that improved designs and methods can be developed within the program later. New and expanded locations within a phase, and unique conditions found there, may require design updates, new hardware models, and customization. Lastly, we expect feedback from using the items in later phases and suggestions for improvements. All of these are reasons to continue the R&D process. &emsp;The R&D work is logically grouped into smaller projects according to the technologies being developed or type of end use. So far we have started this Seed Factory Project to develop the basic ideas for self-improving systems, and started working on what will be needed for Phase 1 locations and networks. &emsp;Future R&D project examples are ocean mining platforms or interplanetary tugs. Such systems would be used in later phases, so we have not yet identified specific ones. There is a lot of science and technology work happening elsewhere in civilization. We do not expect to duplicate that work, but use their results where it makes sense, and contribute back our own results to the general fund of knowledge. &emsp; =='''6.0 - Moderate Locations'''== &emsp; &emsp;Once the R&D phase starts providing plans, designs, and technology, the core self-improvement methods stay the same in all later phases. But equipment sets must be adapted to local environments, material and energy resources, and available people and their skills. Finished products and services also need to be adapted for local and export use. So our program concept has multiple later phases to account for all these differences. &emsp;Phases 1 and 2 are for the easiest environment conditions, which we call "Moderate". This includes temperatures, water supply, and a number of others. The ranges we consider moderate are listed in section 7.1 which covers conditions that are more difficult. Moderate ones are the kinds of places where most people currently live. Among them are locations with significant population and physical development, such as around cities. These locations have enough people, supply sources, and transportation to get started. So they are the easiest ones to build the first projects in. The three phases/sub-phases for these areas are mainly distinguished by scale of operation. They are phases 1:Starter, 2A: Distributed, and 2B: Industrial. ==='''6.1 - Phase 1: Starter Locations and Network'''=== &emsp; :'''Goals''' &emsp;The main goals of this phase are (1) provide products and services at the personal and community level, (2) develop experience with starter sets and self-improvement, and (3) develop trade networks among people in local sites and different locations. By site we mean an individual place like a home or commercial building, while a location is at the scale of a city or metropolitan area that travel and transport across is reasonably easy. Network members can trade physical items, labor, information, and other items as needed. They can also coordinate work on larger or more complicated projects, despite being in different places. &emsp;Networks would be used in all later phases. This is because (1) locations vary in the material and energy sources available. (2) Individuals and groups have variable skills and interests. They also may not want to travel too far to work on projects. (3) Physical space, utilities, safety, and local rules may limit the work done at a particular site. :'''Starting Points''' &emsp;Projects in general need Tools, Resources, Energy, and Knowledge to complete. We call this the "TREK" principle for short. Early projects won't have the benefit of a lot of finished R&D work. To start with they can use already developed tools and machines, existing sources of materials and parts, available electric power and fuels, and the many books, online videos, and other information sources on how to do what is needed. &emsp;Early project examples are (1) setting up for a hobby that needs working space and equipment and (2) improvements to an existing home. Such projects don't have to be completed all at once. They can be started with minimal equipment for the first steps, and gradually add more items as skills accumulate. Eventually an owner can start building custom items like a work table or storage for themselves. If they can find other people interested in similar projects they can share knowledge, trade items, and help each other when extra people are needed. Like other parts of our program, people's skills and the equipment they work with are not intended to reach a static end point, but to grow and develop over time. So self-education, training, and practice are encouraged. &emsp;Equipment for this phase starts at the hobby and home use level, for personal and local community products and services. Their duty cycle (percentage of time in operation) is less than full time, and the equipment is smaller and less expensive. This puts the equipment in reach of ordinary people or small groups. Groups of people can afford a number of these smaller items. They can be housed in space they already have, or they can build or rent space without too much difficulty. &emsp;Equipment may be distributed at people's homes, or grouped into clusters on one property, such as a '''[https://en.wikipedia.org/wiki/Hackerspace Community Workshop]''' or small scale production cooperative. Individual sites may be limited in size and cost, but the network as a whole can grow and improve by adding more sites and upgrading existing ones. :'''Later Improvements''' &emsp;Improvements can come from new R&D work. personal experience, more copies of existing items, scaling to larger (and sometimes smaller) sizes, and purchases funded from sales. As the network expands and upgrades itself, it can produce more items internally for further upgrades, and more products for network use or to sell. Network production can be logically grouped into (1) tools and machines intended to make more tools and machines, (2) items intended for production but not for making more equipment, such as a sawmill or greenhouse, and (3) finished products to be used, traded, or sold, like furniture and food. &emsp;The R&D phase would gradually develop plans, designs, and instructions for starter sets, upgrade paths, and custom equipment. These would be shared as information, and can start to be provided as physical packaged sets. Later projects can then start self-improving faster. A trading network can grow as more sites in more locations are built. &emsp;Examples of future R&D-developed equipment include a 1x2 meter bridge mill, with replaceable heads and bits so it can perform different tasks, and a 15 kW solar furnace with replaceable focus targets. The furnace can directly heat items in a crucible, or generate steam for an electric generator. Such starter set equipment is designed for flexibility, rather than maximum efficiency and speed. That way a smaller starter set can be used for a variety of tasks at lower cost. Later equipment, built with the help of the starter set, can be dedicated to single tasks with higher efficiency and performance. Starter equipment may be supplied finished and ready to operate, as kits with some level of assembly and supplies needed, or purely as plans and instructions. ==='''6.2 - Phase 2A: Distributed Locations'''=== &emsp; :'''Goals''' &emsp;The goals of this phase are (1) increased scale of sites and locations, and (2) relief from job insecurity and displacement by automation. :'''Evolution''' &emsp;Phase 1 locations in general would accumulate skills and equipment. Some sites within the location will move beyond hobby and home use, towards more regular small business and commercial activity. This involves part or full time operation, and selling more products outside the self-improvement network. The larger scale and more intense uses will need different equipment sets. &emsp;When running a business, speed and efficiency become more important, so equipment is chosen or built to do particular tasks well. This results in a larger collection of more specialized equipment. Skills and training also become more specialized and take longer to learn. Particular sites will tend to do a few things well, and trade for other things they need. A comprehensive large site (general purpose workshop or factory) that does many kinds of work is still possible in this phase, but less common. So working sites will tend to be distributed in multiple places. &emsp;Business and commercial scale operation is not limited to production only, but can also serve the full range of habitation, transport, and service industries. For example, a restaurant is a service business, but it needs a building, furniture, and kitchen equipment first. So the logical progression is from core equipment to make more equipment, then finished products like building materials and furniture, and finally industries that don't produce items, but use them to operate. :'''Ownership''' &emsp;In the current economic system, separation of ownership and labor results in the problem of job insecurity. The owners of a for-profit business have the incentive to remove workers as soon as possible to save on labor costs. The removal may be due to lower production and sales, or changes in business methods and technology that need less labor or different skills. &emsp;When a person or group has built and expanded their own equipment and business, the owners and workers are the same people. They don't have the same incentive to remove themselves. To the extent they make items for their own use, production would remain constant. If outside sales decrease, they own the equipment to build and start doing something else to make up the difference. Automation is a threat to conventional jobs by needing less labor. But owners who use the same automation for themselves are not threatened with unemployment. Rather they just work less time or more efficiently. &emsp;By diversifying into different industries, self-owned production can integrate with the rest of civilization and be self-supporting. New network members can become owners by first building or buying into a share of core production. They can then use that production to make or trade for what's needed in other industries. Alternately they can start out working for others in their chosen industry, and buy or trade for production shares. Either way they have more security as owners. ==='''6.3 - Phase 2B: Industrial Locations'''=== &emsp; :'''Goals''' &emsp;The main goal of this phase is to reach the most efficient production levels by additional growth in scale and specialization. Industrial locations are in the same kind of developed areas and moderate environments as Phase 2A Distributed Locations, so we group them together under Phase 2. :'''Growth and Specialization''' &emsp;Industrial sites can evolve from distributed small business or commercial sites by continuing self-improvement and growth. They can also be built as new sites of the final size, where the equipment is supplied by other parts of the network. In that case, supplying the larger equipment and space to house them will likely need outside capital, because individuals or a small group typically won't have enough funds. Gradual evolution from a smaller size by self-production would not require as much, or any, outside funding. &emsp;Larger work spaces with larger input and output flows will tend to limit industrial locations to fewer products. For example, if you are processing scrap metal on an industrial scale into new metal stock, it helps to be near a rail line to transport the scrap and the finished metal. The more products, factory space, and specialized needs you have, the less likely you will find one big site that can satisfy all of them. &emsp;The larger production scale means more outside customers for the products, or larger scale customers. The market area for a site will likely reach beyond a single location, to a region or even world-wide. Since outputs are sold to a wide range of customers at greater distances, transport capacity becomes more important in this phase. &emsp;A narrow product range and large scale markets means demand can be more variable from general economic circumstances or competition. Distributed finance and ownership makes sense in this case. Demand may be low for a particular product, but may be high for something else. In a distributed portfolio these tend to average out. Owners can then reassign their labor and equipment as needed to meet the higher demand products. &emsp;The overall production network has a high capacity to recycle and self-produce what it needs. So modifying equipment to meet changing needs is easier to do. This is a somewhat different business model than investors and workers, with managers in between. It more a network of active owner-operators who can change the mix of what they own and what they produce as needed. &emsp;Like distributed locations, industrial ones can serve the full range of industry types. A combination of industrial, distributed, and individual scale industries can meet most of the needs that people have. If they own their own equipment, or shares in them, because they collectively built and grew them themselves, those needs are met securely, despite higher levels of automation. =='''7.0 - Other Earth Locations'''== &emsp; :'''Goal''' &emsp;The main goal of this phase is a better quality of life through sustainable development. The Earth's population is growing, and most people want a better lifestyle. This needs more physical resources and energy. But the Earth is already being stressed by human impact on the environment, and future growth will only increase the stress. :'''Method''' &emsp;One way out of this dilemma is to produce abundant renewable energy with self-improving systems. These systems make more of themselves exponentially, including more power sources. Renewable energy will have much less impact on the planet's heat balance. Large amounts of energy allow increased reprocessing of wastes, and extraction from lower grade ores or even common rock and ocean water. Rapid expansion brings material goods to the rest of the world faster. Self-production and automation lowers the relative costs of products, energy, and materials. :'''New Locations''' &emsp;Increased supply of raw materials and energy will likely need access to more difficult and remote locations. So Phase 3 covers working in areas that are thinly or completely uninhabited, or that have difficult or extreme local environments. New designs and processes will be needed for such areas. So a new program phase with added R&D is started. &emsp;Harder conditions are a matter of degree, rather than absolutes with a clear dividing line. Sections 7.1 and 7.2 list the ones we have identified. We define the "normal" (moderate) range as those where the middle 90% of of people live. Difficult and extreme conditions are then significantly above or below the moderate range. &emsp;If at least one of the eleven parameters is well beyond the moderate range, then the location is assigned to the difficult category. Extreme locations are even farther from moderate, and can be hostile to people living and working there. More remote-control and automated operations will tend to be used, instead of trying to build controlled environments for people. &emsp;We want to preserve the Earth's total environment, and the parts that are still in a natural state. So developing the difficult and extreme locations must consider sustainability, renewable energy, and environmental impact. An example would be building offshore fisheries to replace wild fish catches. The latter are putting a strain on the ocean food chain, so it is desirable to minimize that impact. But the fisheries must consider all their inputs and outputs in a total system approach to avoid unintended side-effects. &emsp;The mechanics of building in these locations is somewhat different than previous phases. These areas are less populated, with fewer supply sources and utilities available. So growing from a minimal set of tools and machines is harder to do. Instead, more finished equipment is sent from previous locations to start basic functions like mining and producing energy. A set of production equipment then uses these resources, plus some level of imported supplies, to increase capacity. &emsp;That capacity then supplies products and services for local use. Surplus output is traded with the rest of civilization to make the locations self-supporting economically. Once built up, a location can also contribute to starting additional ones. The experience gained in working in difficult or extreme conditions, working remotely, and building up resource extraction and production in such places will be useful for later phases beyond Earth. ==='''7.1 - Phase 3A: Difficult Earth Locations'''=== &emsp; &emsp;We define moderate conditions as those where the middle 90% of the Earth's population lives, with 5% at the upper or lower ends for a given parameter. This definition is somewhat arbitrary, but we think reasonable from a design standpoint. The "Difficult" environments are then those that are at least 10% beyond the moderate range in at least one parameter. 10% is measured either linearly or as a logarithmic factor, depending how wide the normal range is. The parameters and moderate and difficult ranges are: &emsp;'''Temperature''' - This is measured by winter average daily lows and summer average daily highs. The moderate range is 260-310K (-13 to 37C). A given location is likely to exceed either the high or low limit, but not both. The difficult range is therefore below 255K (-18C) or above 315K (42C). Examples of difficult temperatures include Chelyabinsk, Russia, where average winter lows are -19C, and Death Valley, California, where summer highs are up to 47C. The lower limit ie more likely to be reached at high altitudes and latitudes. The high limit is more likely to be reached deep underground, because the Earth's internal temperature rises 25 Kelvin/Celsius on average per kilometer of depth. &emsp;'''Water Supply''' - This is measured by fresh water supply in meters or tons/m^2 per year from rain, rivers, snow, ice, moisture condensation and freshwater aquifers. Salty surface water and aquifers are not included, as they aren't drinkable without desalination. Aquifers are limited to natural replenishment rates, as they are not sustainable if drawn from faster. The moderate range is 0.25 to 2.5 meters/year. Since this is a large range, we use a logarithmic scale, and define difficult as 26% below or above the moderate limits, or <0.185 and >3.15 meters/year. The world's drier deserts fall below the 18.5 cm rainfall level, and places like the east coast of Nicaragua exceed the 315 cm upper limit on rainfall. Too much water is difficult because it can cause problems like flooding, erosion, and decay. &emsp;'''Atmosphere Pressure''' - This is measured by average local air pressure in kiloPascals (kPa). For reference, standard sea-level pressure is 101.325 kPa (14.696 psi). The moderate range is assumed to be from 80-100 kPa (near sea-level to 2000 meters altitude) Difficult pressures are below 70kPa (2750 meters altitude) or above 110 kPa (750 meters below sea-level). These correspond to high mountains or plateaus, and deep underground at low altitudes, since the lowest surface elevation is -413 meters. Low pressures and rapid changes in pressure can cause medical problems for people, so pressure-control is needed where people are. Effects on equipment are mostly minor in this range. &emsp;'''Ground Pressure''' - This is the ground/soil strength at the surface, or surrounding water or rock pressure below the surface, in MegaPascals (MPa). These affect the design of structures, and values that are too low or too high become difficult. For reference, average household floors are designed for 0.275 MPa loads. The moderate range is 0.25 to 2.0 MPa. Difficult conditions are then below 0.19 MPa or above 2.5 MPa. The high limit is reached at ocean depths of 250 meters, and underground at depths of 100 meters in average rock. High surrounding pressures require closed containers to lower them for people, or support structures to prevent collapse. The low limit is reached in open waters (zero strength), fine sand or moist clay (low strengths). Low ground strength requires larger building foundations, or floating construction in the case of open waters &emsp;'''Energy Supply''' - This is measured by average energy supply from renewable natural sources in W/m^2. Wind and solar are available in most places, and are rapidly renewable. Ocean thermal and geothermal are widely available if you go deep enough, but take long periods to renew once depleted, so we only count their renewal rate, not the stored energy. Sources like hydroelectric or tidal energy are not available everywhere, but counted if they are. &emsp;Fossil fuels are not sustainable because of finite supply and the waste products they produce. Biofuels may be produced sustainably. Fuels for nuclear fission and fusion (which is still being developed) are in large enough supply to be considered sustainable but require mining or separation. They can be used to produce energy, but we don't count their contribution to local supply. &emsp;Low energy supply is difficult because some is needed for almost every kind of human activity. If it is not available locally, it must be imported by methods like fuel delivery or power lines. High levels of energy supply are not considered difficult. The range of energy flux is roughly 150 to 900 W/m^2 on Earth, so a difficult low value is 125 W/m^2. Any significant depth below the surface is cut off from wind and solar sources, so are likely to be difficult and require energy supplied from elsewhere. &emsp;'''Gravity Level''' - This is mainly one of the conditions for space environments. On and near the Earth's surface it does not vary by more than 10% unless you are in a centrifuge or accelerating vehicle, so there are no natural places on Earth beyond moderate conditions. Low gravity causes biological problems for people, and may for animals and plants. High gravity is difficult to work in for people, and requires extra structural support for physical items. &emsp;'''Radiation Dose''' - This is measured by unprotected background radiation in milliSeivert (mSv)/year. Industrial exposure, such as to medical imaging staff, or from mining, using, and disposing of radioactive materials, is not considered an environment condition. But such exposure needs its own designs for safety and shielding. Natural background radiation varies by location, according to altitude, magnetic field, and what materials are in the ground below. In most places on Earth it varies from 1 to 13 mSv/year. &emsp;A few places have high radiation levels from concentrations of radioactive elements and their decay products, up to 135 mSv/yr. People have lived in such locations for many generations, with no apparent ill effects. Since adaption may have occurred for long-term residents, we will be conservative and consider high radiation levels a hazard to the general population. &emsp;Levels above 17 mSv/year would be considered difficult. Depending on sources, they might require shielding, sealing, or air circulation. Low radiation levels are not considered hazardous, so background levels below 1 mSv/year are not considered difficult. Note that the human body contains some radioactive elements naturally, so there is no zero background level. Even the highest natural radiation levels on Earth are not significant for most equipment designs. &emsp;'''Ping Time''' - This is the round-trip communication delay to the next nearest 5% of world population, in milliseconds (ms). Long delays create difficulty in voice communications or real-time remote control, and slow down any computer network-based activity. There is no lower limit for this parameter, since short ping times are not a difficult condition. &emsp;On or near the Earth's surface we consider ping times above 100 milliseconds to be difficult, as this much delay starts to be noticeable to people. There are few locations that have such high values to reach 5% of the world's people. The 5% value is because you can choose to do tasks like remote control from reasonably nearby, and not from the farthest place on Earth. This parameter becomes more important in space. The speed of light limits operations to within 15,000 km to stay under 100 ms. That only reaches moderately high Earth orbit, and most of space is far beyond that distance. &emsp;'''Travel Time''' - This is the maximum one-way normal travel time for people, to reach the nearest 5% of other people. Travel time for cargo is assumed to be proportional to that for people. High travel times makes it more difficult and expensive to bring in people with special skills, or necessary parts and materials. Densely populated areas can usually be reached in 5 hours or less. Most of the world's populated areas can be reached within 48 hours, so we set this as the upper limit for moderate (developed) travel. The worst case travel time is 10-20 days for parts of Tibet which lack roads, and ocean locations distant from any airports, requiring ship travel to reach. Very low travel times are not a difficulty, so we set no lower limit for this parameter. We define difficult travel as needing more than 2.5 days. &emsp;'''Stay Time''' - This is the average stay time per person per location, in years. People stay in the same location if they live and sleep there the majority of the time, and make trips to other locations less than half the time. Short stay times are more difficult because of increased transportation needs and staff turnover. The short times may be caused by a harsh environment, lack of habitation and services, or the location is simply undesirable. It can also be caused by a rapidly growing population lowering the average residence time. In that case, the difficulty is caused by having to rapidly build new habitation and services. &emsp;Long stay times are not considered difficult, and their upper limit is the human lifespan. Rapidly growing areas provide the shortest average times on Earth, 7 years if normal turnover is added to growth. Since the upper bound is ~70 years, we will set the difficult limit at 25% below the shortest average, at 5 years. Examples where such low values occur are mining and construction camps in remote locations. &emsp;'''Transport Energy''' - This is the total energy to reach a location from the nearest 5% of population, by the most efficient method, in MegaJoules per kilogram (MJ/kg). For reference, 3.6 MJ = 1 kiloWatt-hour of electricity. Transport energy includes kinetic, potential, and frictional energy. High transport energy is difficult because of increased need for equipment, and their higher cost of operation. &emsp;On Earth, potential and kinetic energy of transport are generally low, and friction dominates. Rail and water transport are currently the most efficient bulk methods, and range from 0.225 to 2.25 MJ/kg between densely and sparsely populated areas. Low transport energy is not considered difficult, but we set values above 2.85 MJ/kg to be. Such values can occur when rail and water transport are not available, and part of the trip must be by less efficient methods. It can also happen when there is a lot of altitude change on the route, increasing frictional losses so as not to exceed speed limits. &emsp;Some of these parameters change with time, due to technology and development. For example, parts of Alaska had long travel times when the only available transport was by dog sled. Once small airplanes and a network of landing fields were available, it became less difficult. It may be a specific goal to upgrade a location to less difficult status, but we define it for phases and R&D by the pre-existing conditions that have to be dealt with. ==='''7.2 - Phase 3B: Extreme Earth Locations'''=== &emsp; &emsp;We define extreme locations as an additional 10% beyond the difficult range. This is again in linear or logarithmic amounts, depending on the span of moderate conditions most people live in. The more extreme parameters will need further design modifications, and therefore supporting R&D to develop them. We define no upper bound on how extreme things can get, they are only limited by the natural environment and general state of civilization. The parameter values are: &emsp;'''Temperature''' - average daily lows below 250K (-23C) or average daily highs above 320K (47C). The lows might be found in Antarctica or at high altitudes. The highs are found deep underground or in the hottest deserts. &emsp;'''Water Supply''' - The lower range is less than 0.12 meters/year (4.75 inches), which is a very dry desert. The upper range is more than 3.8 meters/year, which is found in the wettest rain forests. &emsp;'''Atmosphere Pressure''' - The extreme ranges are below 60 kPa or above 120 kPa, which correspond to altitudes above about 5500 meters or below -1600 meters. These correspond to very high mountain tops and deep underground. &emsp;'''Ground Pressure''' - The ranges are below 0.12 MPa or above 3 MPa. These correspond to soft clay or open water at the low end, and depths of 300 meters in water and 120 meters in rock. &emsp;'''Energy Supply''' - The low range is below 90 W/m^2 from wind and solar, which is mainly encountered below the surface. High values of energy supply are not a difficulty. &emsp;'''Gravity Level''' - This parameter does not vary by more than a few percent on Earth, so extreme conditions more than 20% beyond normal do not occur. &emsp;'''Radiation Dose''' - The extreme range is more than 21 mSV/year, which occurs in some natural high radiation areas, or if spending a lot of time (>25%) at high altitude near the magnetic poles, where cosmic radiation can come down vertically. &emsp;'''Ping Time''' - The range for extreme ping time is more than 125 ms round trip. This is nearly around the world at the speed of light, so accessing 5% of the population only takes this long if radio or fiber communications routes are very indirect or unavailable. &emsp;'''Travel Time''' - The range for extreme travel time is more than 3 days to reach. This is found only in very remote areas without conventional transportation. &emsp;'''Stay Time''' - The lower range is average stay times below 3 years 4 months, which mainly would be found in temporary work locations. &emsp;'''Transport Energy''' - The upper range for extreme transport energy is above 3.5 MJ/kg. This is reached mainly when inefficient transportation has to be used. =='''8.0 - Phase 4: Orbital Locations'''== &emsp; [[File:Von_Braun_1952_Space_Station_Concept_9132079_original.jpg|thumb|right|640x446px|Figure 8.0-1 - 1952 space station concept by Wernher von Braun and Chesley Bonestell.]] :'''Goals''' &emsp;The main goals of the later phases are using space to bring benefits to Earth, and to help with some long-term problems that can't be handled any other way. &emsp;Figure 8.0-1 is an early concept for a rotating space station, made 5 years before the first orbital launch of Sputnik 1. Note the ring-shaped solar collector on top. This would heat a fluid to produce power, since solar cells were not well developed at the time. We show it as a reminder that plans can only be made from what is known at the time. Our approach to developing space may look equally out of date 70 years in the future. Despite that, we have to start somewhere and then make updates as needed. :'''Approach''' &emsp;Sections 8, 9, and 10 cover Phases 4, 5, and 6 in that order. Sub-phases for each are grouped together because they involve working in similar space environments. Orbital locations (Phase 4) come first, because Earth orbit has to be reached before going anywhere else in space. Planetary system locations (Phase 5) share being on or tied by gravity to the larger Solar System bodies other than Earth. Their gravity wells take more work to travel to and from. The local environments are also different on and around these bodies. &emsp;We expect the various sub-phases to have different starting times, but overlap and continue in parallel once started. Phase 6 (Interstellar) involves places beyond the Sun's gravitational dominance. It is expected to be last in time. It is hard to predict what technology will be available by then, and how such distant locations would be used. So the last phase is mainly included as a placeholder and to provide some direction for future work. :'''Current and Near-Term Space Industry''' &emsp;Working on long-term problems doesn't have an immediate economic return. So the first uses of our approach for places beyond Earth would be to support existing and near-term space industry. According to UN records there were over 8200 satellites orbiting the Earth at the start of 2022. Of these, about 4850 were active. There are a smaller number of spacecraft and other items that have been sent to the Moon and beyond, some of which are still operating. The inactive equipment, plus other discarded items and fragments, make up artificial '''[https://en.wikipedia.org/wiki/Space_debris Space Debris]'''. The increasing amount of debris is one of the long-term problems that need solving. &emsp;'''[https://sia.org/news-resources/state-of-the-satellite-industry-report/ Total Economic Activity]''' related to space was $386 billion as of 2021, split between government and private projects. But nearly all of the people involved, and most of the physical tasks, happen on Earth. This provides a starting point for using our self-improvement methods and other advanced technology. In turn that should lower costs. &emsp;Reaching space is generally industrial-scale activity. Rockets themselves are large, and so are the places and equipment to build and launch them. So it would be part of or follow Phase 2B's other industrial locations. What is sent to space can be as small as hobby scale. '''[https://en.wikipedia.org/wiki/Amateur_radio_satellite Amateur Radio Operators]''' have sent satellites into orbit, and well over a thousand '''[https://en.wikipedia.org/wiki/CubeSat Cubesats]''' based on 10 cm modular sizes have been sent to space. Building and operating equipment sent to space more typically ranges from Phase 2A's small business and commercial scale up to the industrial level. &emsp;Reaching space was very expensive until recently because some or all of a rocket was discarded after one use. The high cost limited space activity to large nations or groups of them at first. Over time, commercial space activity has grown to be about 75% of the total. Lower cost transportation and satellite equipment is actively being pursued. The methods include adopting mass production, and discarding less or none of the rocket each flight. &emsp;Most equipment sent to space is also discarded when it fails or reaches the end of its useful life. This adds to the cost of operating in space. Refueling, maintenance, and repair of equipment in space is very limited. New production, upgrades, and recycling is limited to non-existent. Total cost can be lowered by changing how space projects are built, delivered, and operated. In turn this would expand existing uses, and open up new ones like private space stations and space tourism. :'''Long-Term Sustainability''' &emsp;As of 2021 fossil fuels supplied about 77% of global primary energy. Since about 1900 their rapid growth powered most of the development of modern civilization. But that comes with a number of unfortunate side effects. They include environmental damage, pollution, and adding greenhouse gases, mainly CO2, to the atmosphere far faster then natural processes remove it. &emsp;These gases reduce infrared radiation back to space, altering the balance between incoming sunlight and outgoing heat. Venus' surface temperature of 462 C (864 F) shows why this is a bad idea. Only 50C of Venus' higher temperature is due to being closer to the Sun. The rest is primarily heat trapped by a thick CO2 atmosphere. Society must transition this century to renewable non-carbon energy sources, so Earth doesn't become more like the hell that Venus is. &emsp;Despite the large-scale use of fossil and other energy sources, current civilization can't afford to capture and reprocess all waste materials, nor extract new materials from abundant low-grade sources. New materials come from '''[https://en.wikipedia.org/wiki/Ore Ores]''' instead. These have higher concentrations of desired products, which take less work to extract. However, high-grade ores are in limited supply. If used materials are not fully reprocessed, those ores will eventually run out. So the current state of civilization is unsustainable. It is heading towards severe problems from increasing temperature, running out of affordable materials, or both. &emsp;At the same time, the world's population is growing, and not everyone has the benefits of full development. Such development demands even more energy and materials. It's unfair to deny these benefits to some people because others were the first to get them. A growing population with a high standard of living will put more stress on the remaining natural world, and deplete accessible resources faster. Self-improving factories and other advanced technologies can be used to build more renewable energy sources and reprocess more wastes. This would have less impact on Earth, but it does not reduce it to zero. :'''Civilization-Level Risks''' &emsp;Another problem is preserving civilization and the biosphere in the face of large-scale risks. One such risk is runaway greenhouse warming due to positive feedback loops. This is different than the temperature rising a certain number of degrees from higher CO<sub>2</sub> levels. Melting ice caps can expose darker water or land, increasing the absorbed sunlight and causing further melting. Another feedback loop is release of methane from frozen ocean hydrates and organic matter in permafrost. Methane is a strong greenhouse gas, and so can lead to accelerated release. &emsp;Another risk is from asteroids. Large asteroids fly past Earth fairly frequently, and occasionally hit it, causing widespread damage. There are enough craters, recorded impacts, and near misses to know it is a low probability event, but can be catastrophic if it does. So it is worth trying to reduce the risks. Note that small objects either burn up in the atmosphere or only cause local damage, and don't require civilization-level action to prevent. &emsp;There are other large-scale risks besides these two. Examples include '''[https://en.wikipedia.org/wiki/Supervolcano Supervolcano]''' eruptions, genetically engineered plagues, and nuclear war. It is worth some effort to identify these risks, and reduce them if possible. Backup locations beyond Earth can be a last resort if such efforts fail, but most efforts should likely be directed at prevention rather than recovery. ==='''8.1 - Using Space to Solve Earth's Problems'''=== &emsp; &emsp;There are abundant energy and material resources in space. If the cost of using them can be brought low enough, then that becomes preferable to, for example, putting more solar panels in climates unsuited to them, or digging ever deeper underground to find high quality ores. &emsp;There is seven times more solar energy available in space near the Earth than the average on the ground. Atmospheric absorption, night, and weather account for the difference. The equipment to collect that energy is also about seven times lighter because it doesn't need to handle gravity and weather. So the energy to equipment mass ratio is roughly 50 times higher. &emsp;There is also a wide variety of accessible materials in space, starting with the Moon's surface and nearby asteroids. These have been "pre-mined" in the sense that impacts have left them broken up and loose. Extracting them doesn't need heavy equipment, so the tons mined per ton of equipment is high. The combination of high energy and low equipment could allow rapid bootstrapping of space industry. The products can then help solve the problems and risks we noted above. :'''Lowering Space Operations Cost''' &emsp;Reaching and working in space has been very expensive, especially beyond the lowest Earth orbits. But that is an engineering problem, not one set by basic physics. For example, wholesale potatoes are on the order of $300/ton, and the wholesale electrical energy to put those potatoes in Earth orbit (8.7 MWh) is on the order of $550, less than twice as much. Sending even cheap bulk commodities to space would be affordable if done with high efficiency. Current launch costs are quoted at $1.52 million/ton or more (Falcon Heavy, 2022), 2750 times as much. This shows how much room there is for improvement. &emsp;There are a number of ways this cost can be reduced. Reaching space today requires a good deal of equipment on Earth, like rocket factories, the rockets themselves, and launch sites for them. Self-improving automated production can lower the costs of these. As with other industries, you can begin with a starter set, and grow it until you have mature factories that produce the space hardware you need. &emsp;A large amount of rocket and satellite hardware is discarded after use. This is a major contributor to high costs. Improved designs can allow reuse and repair. Conventional rockets are also inefficient. They require about 40 times the payload mass in fuel (for '''[https://en.wikipedia.org/wiki/Rocket_propellant#Current_cryogenic_types LOX/RP-1]''') containing 387 MJ/kg of fuel energy. The payload ends up with 32 MJ/kg of kinetic and potential energy, so the fuel efficiency is only 8.3%. Alternate launch methods can dramatically improve on this value, but there has to be enough traffic to space to justify their development. &emsp;Advanced production methods in space, using materials and energy already there, can ultimately reduce mass launched from Earth by 98-99%. The transportation component of operating in space can then be reduced by a similar ratio. If in-space production costs are less than the launch savings, then overall costs go down. &emsp;More efficient space technologies, like electric propulsion and closed life support, further reduce the mass from Earth needed to operate. The closer we can source supplies to the desired destination, the less effort is needed to move them there. So a Lunar or Mars base would ideally get most of what it needs locally, or from not too far away, and only get from Earth what can't be found or made otherwise. The combination of all these methods would get much closer to "potato cost". :'''Space Development Process''' &emsp;Our approach would follow the same general path in space as it does on Earth. In particular the methods used for difficult and extreme locations on Earth are relevant, although the details will differ. Space is nearly undeveloped and barely populated. So early tasks include delivering equipment to supply energy and gather raw materials. A core set of processing equipment would be used to turn raw materials into basic supplies like propellants, and production inventory like metal stock. &emsp;Other equipment takes these products, plus some amount of imported items, and fabricates parts for more production equipment, plus finished items like habitats for people and food production. Metals for machinery and construction are likely the majority of first generation production, since that is the foundation of industry on Earth. Second and later generation equipment can then produce other materials and products in an expanding sequence. &emsp;In the early stages there is less equipment available at a given location. So a larger percentage of parts and materials has to be imported from previous places, or from Earth. As more equipment accumulates, a higher percentage can be produced locally. Once a given location has matured enough, it can start to make items for new starter sets. These can be used in the same region, such as other parts of the Moon, or sent off to start developing new regions. &emsp;Once a location can export a surplus of locally made items, they can be traded for those it can't make, or needed materials that are locally rare. Such trade would be based on '''[https://en.wikipedia.org/wiki/Comparative_advantage Comparative Advantage]''' like it is on Earth. By export and trade a location can become economically self-supporting, and not a cost burden. This is in contrast to a station or base that can't make things locally, which has to be supplied from elsewhere at a continuing cost. &emsp;Self-supporting locations can produce an expanding wave of civilization and life as far as people want to carry them - throughout the Solar System, and in the long term, beyond it. :'''General Space Environment Features''' &emsp;Orbital locations in Phase 4 begin at 200 km altitude above the Earth's surface, where atmospheric density is low enough for stable orbits. They extend beyond that to the limits of stable orbits bound by gravity to Earth, then to interplanetary orbits at all distances from the Sun. The planetary system locations of Phase 5 are embedded within the larger interplanetary region, and move with the major bodies and the gravity fields they produce. &emsp;The environment conditions, raw materials, and available energy vary widely across the different regions. So we divide Phase 4 into six sub-phases by region, and Phase 5 into five sub-phases. We expect their development to start mostly in order by distance from Earth. Orbital locations include smaller bodies like asteroids found there, and planetary systems include an area of stable orbits around them and the smaller bodies tied to them by gravity. &emsp;The environment parameters for Phases 4 and 5 are generally more difficult than extreme ones on Earth (Phase 3B). The added difficulty in many cases is incremental, not orders of magnitude steps, and not in all parameters. Proper design and operation can deal with most of these conditions, but some places are so extreme that current technology has no way to handle them. The general ranges are noted here. Some details for sub-phases and particular locations are noted below. Extensive and growing knowledge about them comes from the field of '''[https://en.wikipedia.org/wiki/Planetary_science Planetary Science]'''. * '''Temperature''' - Distance from the Sun, and the percent field of view of the '''[https://en.wikipedia.org/wiki/Cosmic_background_radiation Cosmic Background]''', which is at near absolute zero temperature (2.7K) are the main determinants of local temperature. It can range anywhere from above 700K to below 50K (+425 to -225 C). Partly shadowed orbits, or night on a surface, can produce wide temperature swings. Reflection from the surface of a body, or underground surroundings, will modify the ambient temperature. * '''Water Supply''' - Orbital locations don't have a weather system that delivers a renewable water supply like Earth. But some bodies have water in the form of hydrated minerals or ice. Liquid water layers may exist inside dwarf planets and moons, and water in general is abundant beyond the "frost line" around 3 AU, where temperatures are low enough for ice to be stable in a vacuum. * '''Atmosphere Pressure''' - Vacuum is the normal condition in open space and on the surface of most bodies. Some of the larger dwarf planets and moons have non-zero pressures, and all the major planets except Mercury have significant to dominant atmospheres. * '''Ground Pressure''' - This doesn't exist in open space, and is generally low even for larger asteroids, either because of low gravity or low surface strength. Ground pressure can become significant if you go deep enough into larger asteroids. It becomes very high inside large moons and major planets. * '''Energy Supply''' - Varies from above 10 kW/m<sup>2</sup> in close solar orbits to below 1.5 W/m<sup>2</sup> beyond Neptune. Orbits with time in shadow lose a percentage of this. Surfaces in vacuum reduce solar energy by about 50% from nights, with variations from topography like mountains and craters. Atmospheres can further reduce solar energy. :&emsp;Other sources like wind, precipitation, and geothermal may be available on some bodies. Nuclear power is possible using fuel delivered from Earth or mined from places with radioactive elements like the Moon. Power can be transmitted over moderate distances using conductors and beams, or even simple reflectors. * '''Gravity Level''' - Natural gravity ranges from zero in free orbits, to about 3% of Earth's on dwarf planets, and up to 2.4 times Earth on larger moons and major planets. Artificial gravity can be supplied by rotation where biology or industrial processes need it. Artificial gravity is only limited by structural materials and practical issues like arrival and departure. * '''Radiation Dose''' - Most orbits and surface regions have high natural levels of radiation from galactic cosmic rays, solar particle events (flares), and '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' like the ones around Earth. Devices like solar panels and electronics are generally less sensitive to radiation than living things, but can still be damaged or temporarily upset. :&emsp;Radiation can be lowered to safe levels using bulk mass as shielding, or possibly artificial methods like magnetic fields. Shielding mass in orbital locations can come from asteroids or imported from moons. On substantial bodies their mass provides partial natural shielding, and going underground and arranging local materials can provide the rest. Transport vehicles can use fuel, water, or other supplies as shielding. Large habitats may get enough shielding from their outer structure, equipment, and storage tanks. * '''Ping Time''' - Round trip communication time varies greatly from milliseconds in low Earth orbits to hours or even days in the outer Solar System. Essentially all the communication time is due to speed of light delays. On Earth, fiber-optic cables transmit at about 2/3 the speed of light, and follow indirect paths from geography and a spherical planet. * '''Travel Time''' - This also varies greatly according to orbit region. It can take a few hours to reach low Earth orbit or return from it to the ground, plus some travel time to other population on the Earth's surface. Travel to the outer Solar System using known propulsion systems will take a number of years or even decades. * '''Stay Time''' - This is currently very short because there are no permanently inhabited locations in orbit. Astronaut crews typically stay about 6 months aboard the International Space Station. With the development of larger, more permanent locations, with artificial gravity, food supplies, etc. the stay times can increase to a number of years. * '''Transport Energy''' - Much less than 5% of civilization is in space, so transport energy is measured from the Earth's surface to an orbital location. This is a minimum of 33 MJ/kg, set by the physics of reaching low Earth orbit. It is a lot higher using current rockets, because their operating efficiency is low. More distant orbital locations require additional energy to reach, and currently this reduces cargo mass dramatically, producing even higher transport energy/kg. ==='''8.2 - Phase 4A: Low Orbit Locations'''=== &emsp; &emsp;Sections 8.2 to 8.7 cover sub-phases 4A to 4F. We limit the a amount of detail to keep the size of this report reasonable, and in some cases is limited by the current state of knowledge about the regions. Each region would be developed using the general approach in Section 8.1, with some methods adapted to local conditions. The start of each successive sub-phase is staggered in time, but a region does not have to be fully developed before starting on the next one. They would develop in parallel once started. &emsp;We suggest some economic uses for these regions, how to reach them, and how to develop them. We don't know enough to say if these are the best or only uses for them, and we certainly don't know what ideas other people will come up with in the future. So consider this report as a starting point for others to improve upon. :'''Low Orbit Features''' &emsp;Earth orbits form a continuous range from 200 km, the minimum set by atmospheric drag, to the maximum set by Sun's gravity becoming dominant. We divide that range in half by the transport energy required to reach it, at 2700 km average altitude. Conditions are different enough between low and high orbits to get their own sub-phases. Orbits can be elliptical and constantly vary in altitude, so we use the average between the high and low points, which is called the '''[https://en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes Semi-Major Axis]'''. &emsp;Objects in low orbits are in the Earth's shadow about 22-40% of the time, reduceing available energy. The Earth fills a large part of the field of view, which affects thermal balances, and lighting when over the sunlit side. Orbit periods are 2.5 hours or less, so travel time from the Earth's surface is fairly short. Ping time by way of ground stations is under 20 ms, so not difficult. But low orbits have a limited view of the Earth's surface at one time. So multiple ground stations are needed, or communications are relayed by a higher satellite. This can add up to 500 ms to round-trip communications, which is a noticeable delay. &emsp;The Earth's magnetic field traps particles into '''[https://en.wikipedia.org/wiki/Van_Allen_radiation_belt Radiation Belts]''' that begin at low orbits and extend past them to high orbits. Unprotected people and electronics can be damaged by the high radiation levels. So spacecraft have to be designed to withstand radiation, avoid these belts, cross them quickly, have sufficient shielding, or the belts depleted artificially. &emsp;Material resources are relatively scarce in low orbit. They include the upper edge of the Earth's atmosphere, and debris from inactive satellites and rocket stages. The mass of particles in the radiation belts is very small. Other materials have to be imported from Earth or higher locations. :'''Economic Uses''' &emsp;We would like all regions in space to become economically self-supporting. Earth orbits already are, with 75% of total space activity being commercial. Low orbits are occupied by a large number of active satellites serving the people below. Current uses include Earth observation, such as weather, mapping, and agricultural monitoring. Many satellites are now used for communications relay between points on the surface. Government uses include research, such as the Space Station and Hubble Telescope, and national security. &emsp;Future uses may include tourism, orbital assembly and maintenance, and payload transfer, and refueling for more distant destinations. Further development of low orbits would start with existing markets. It would expand to new ones as transportation costs are reduced and local industry built up. We discuss some options in this section, but it is an area with projects being worked on by many others. &emsp;We don't expect large-scale production and habitats in low orbits, because more materials and energy are available higher up. We do expect low orbits to become transit points, because below the radiation belts is the nearest place to Earth that is reasonably safe and doesn't need constant propulsion to maintain position. :'''Transport from Earth''' &emsp;Low orbit has few available materials, so most items have to be imported. Rockets and space hardware have existed for decades, but they are still too expensive for many future uses. As noted in section 8.1, self-improving and automated production can help lower the cost of building and running aerospace factories and launch sites. &emsp;Reusing rocket hardware can improve costs substantially, but conventional rockets have low energy efficiency. They are limited by the energy in chemical '''[https://en.wikipedia.org/wiki/Propellant Propellants]''' and the mass of the Earth, neither of which is changing. A shift to different launch technologies can can improve efficiency and cost. But there has to be enough traffic to justify the added R&D cost in the face of existing rocket systems. There are many possible launch technologies. See Part 2 of our volume on '''[https://en.wikibooks.org/wiki/Space_Transport_and_Engineering_Methods Space Systems Engineering]''' for an extensive list. We provide one example here to illustrate the possibilities. [[File:AEDC_Range-G_Launcher_facility.jpg|thumb|800x599px|Figure 8.2-1 - AEDC Range-G Hypersonic Research Gun (on left, 20cm interior diameter of barrel).]] &emsp;'''Hypersonic Guns''' - Hypervelocity gas guns have been used in research for decades (Figure 8.2-1). They are inexpensive to build compared to most aerospace hardware. This is because they don't have to fly, so can be made of heavy industrial parts, and '''[https://en.wikipedia.org/wiki/Light-gas_gun Light Gas Guns]''' are basically simple devices. &emsp;A larger version of such a gun, on a mountain with the correct slope, can supply 50-70% of orbit velocity for bulk cargo which is not sensitive to high g-forces. These include fuel, water, structural parts, even frozen food. Outdoor barrels measured in km rather than meters lower g-forces and operating pressures. But they are still generally too high for delicate cargo and people. Those would use other kinds of transportation. Industrial factories grown from starter sets could be a low-cost source for the construction equipment to build on the mountain, the high pressure pipe, other parts for the gun, and an energy source to compress and heat the gas for launch. &emsp;Muzzle velocities much higher than ~4 km/s (half of orbit speed) become increasingly less efficient. This is because of limits on expansion rate of the working gas, and increased drag and heating while climbing through the atmosphere. The remaining part of reaching orbit is supplied by an internal rocket engine on the projectile or by other methods. Because the rocket engine only supplies half or less of the velocity, it is many times smaller relative to cargo than conventional rockets. &emsp;The fuel-to-payload energy efficiency is roughly two-thirds, much better than conventional rockets. The gun also uses energy, but it is relatively cheap to operate. It is stationary on the ground, uses inexpensive materials, and can be used many times. The projectiles are rugged and durable, and can also be used many times. Re-entry is much gentler than the initial launch. The operating cost per ton to orbit should therefore be lower than conventional rockets. A gun-type launcher could deliver a large portion of the mass to orbit. There is no requirement that everything going to space has to travel the same way, any more than it does here on Earth. &emsp;'''Other Launch Methods''' - Hypervelocity guns are just one example. Other technologies with reasonable prospects include high-speed air-breathing engines for the early part of flight, and orbiting structures with suborbital landing platforms for the later part. Both are more efficient than chemical rockets in their respective velocity ranges. Unfortunately neither can easily serve the whole job of transport to orbit. A combination of systems, each operating where it works best, is likely the better option. &emsp;High speed jet engines and orbital platforms would require substantial R&D, and are therefore not likely to be the first things built. Instead, lowering the cost of conventional rockets is the first step. It would then be supplemented with a low R&D system like a hypersonic gun. Once new markets are opened up by the lower costs, the more advanced technologies that need more R&D can then make economic sense. :'''Mining and Production''' &emsp;Low orbits are not ideal places to process raw materials. That requires a lot of energy, and sunlight is blocked a good percentage of the time. But there is enough energy to fabricate parts and assemble them to finished items. For example, spools of high strength fiber and metal wire are rugged enough to be launched by bulk systems. The fiber and wire can be wrapped and plasma-sprayed in layers around inflatable or collapsible forms, to build up large, lightweight structures. Large pressurized volumes built this way can then house other production and assembly equipment and people to work there. &emsp;There are some material resources in low orbit that don't require a lot of processing. At altitudes of around 200 km it may be possible to "scoop mine" the upper atmosphere. A collection scoop funnels incoming air, which is very thin at this altitude, to a vacuum pump and compressor. A portion of the air is expelled by electric engines at much higher velocity than the incoming flow. This makes up for drag from the scoop. The remaining air is stored in tanks. &emsp;When the tanks are full, the mining ship climbs higher and unloads to storage tanks at a depot. The reason to mine like this, rather than launching gases directly from Earth, is the solar arrays that power the mining ship can produce 1000 times the energy needed to put themselves in orbit over their operating life. As long as the gas mining can be done with reasonable efficiency, launching solar arrays rather than tanks of gases results in much more usable product in the end. &emsp;A steady supply of air (or nitrogen and oxygen if separated) obviously can be used to support people in orbit. It can also fuel tugs that collect dead satellites and debris from the Earth's "debris belt". This both reduces the hazard they create, and supplies useful resources. The collected materials can be scavenged for usable parts or recycled into new products. Dead satellites and empty rocket stages are made of aerospace materials, so they should not need a lot of processing to reuse. &emsp;Mining the debris is only feasible with a cheap source of propellant and efficient electric engines. The pieces are in random orbits, and would consume too much propellant to gather otherwise. Air plus debris mining can provide enough materials to support some production in low orbit. The larger sources available from the Moon and asteroids, and the full-time solar energy in higher orbits, leads to the majority of production being done elsewhere. It can be efficiently delivered "downhill" using gentle '''[https://en.wikipedia.org/wiki/Aerobraking Aerobraking]'''. Low orbit mining and production then ends up supporting local uses, and this region functions as a transfer point between the ground and elsewhere. ==='''8.3 - Phase 4B: High Orbit Locations'''=== &emsp; :'''High Orbit Features''' &emsp;We define high orbits as extending from 2700 km average altitude to the limit of the Earth's dominant gravitational influence, or '''[https://en.wikipedia.org/wiki/Hill_sphere Hill Sphere]'''. For Earth this is about 1.5 million km, but towards the outer edges orbits become less stable. This is a large range of distances, but it only represents the upper 25% of energy between the Earth's surface and escape. That's because gravity is an inverse square force and weakens rapidly as you increase distance. &emsp;The Moon is the most prominent feature in high orbit. It has its own area of dominant gravity, with a radius of about 60,000 km, and reasonably stable orbits with semi-major axes to about 35,000 km. Additional energy is needed to descend through the Moon's gravity field to low orbits or the surface. Conditions are also different enough near and on the Moon that we assign the region within 35,000 km to Phase 5A - Lunar Locations. &emsp;High orbits are in sunlight 85-100% of the time, reaching the highest values when farther from the Earth and Moon. Temperature is determined mostly by the Sun and the cold Cosmic Background, but at lower altitudes the Earth contributes a significant amount of reflected light and infrared heat. Orbit periods range from 2.5 hours to 7 months, so travel times by the most efficient routes can be long. Direct paths can be much faster, 12 days or less, at the expense of additional energy. &emsp;Ping time varies from as little as 25 ms, which is not difficult, up to 10 seconds, which has a large impact on voice, real-time control, and electronic data. The upper part of the Earth's radiation belts, solar, and cosmic radiation create high to dangerous levels for people and equipment. Energy resources are abundant in this region, but material resources are low in their natural state. The Moon and Near Earth Objects can supply materials with fairly low transport energies. :'''Economic Uses''' &emsp;One orbit in this region, geosynchronous, at 35,000 km altitude, is already heavily used. This orbit has a period of 24 hours, which matches the Earth's rotation. So satellites appear to stay above a fixed ground location, and ground antennas can be stationary rather than having to track satellite motion. Synchronous orbit is in the outer fringe of the radiation belts. &emsp;Future production and human habitation would likely start higher up. One set of such locations are near the Earth-Moon L4 and L5 '''[https://en.wikipedia.org/wiki/Lagrange_point Lagrange Points]'''. These are stable regions, but not singular points. The Sun's gravity and the Moon's orbit not being circular or in the same plane as the Earth and Sun cause some motion around the points. &emsp;Delivery, refueling, and maintenance of high orbit satellites from Earth are current and near-term activities for this region. Future activity can include supplying fuel and other supplies from space sources back to low orbit and to early interplanetary locations. These and other possible future activities depend on bringing costs down to affordable levels. This would happen incrementally as self-improving production for early markets bootstraps to larger levels. &emsp;There are some civilization-level problems that high orbit activity can help with. If climate change solutions on Earth are not enough, orbiting sun filters can be used. They let wavelengths used by plants through, but block other parts of the solar spectrum. This would help cool the planet. Large solar system objects that pose a risk to Earth could be diverted or put to use instead. This requires finding them far enough in advance to change their orbit. An active civilization and biosphere off-planet could restore Earth if catastrophes happen despite our best efforts. &emsp;The solar energy flowing through this region is nearly 500 million times what civilization uses today. The Moon and nearby asteroids can supply 250 million years of raw materials at Earth's current mining rate without recycling. With abundant energy and recycling a small fraction of these resources can make civilization sustainable for a very long time. :'''Transport from Other Orbits''' &emsp;Excluding the Moon, the high orbit region is nearly devoid of raw materials. So they must be imported from elsewhere. Current transport from Earth uses a rocket to reach orbit, then more chemical or electric propulsion to reach higher orbits. Electric propulsion is about ten times more fuel-efficient than chemical rockets, and is being used more in recent years. &emsp;Electric engines need large amounts of power to operate, but efficient and lightweight solar panels have been developed in the last few decades (see '''[https://www.nrel.gov/pv/cell-efficiency.html NREL Efficiency Chart]'''). The engines are low thrust, which would expose people and some other items to too much radiation while crossing the Van Allen belts. So some early transport will use less efficient but faster rockets. Once propellants and bulk mass for shielding are available from space sources, the penalty for less efficient transport can be reduced. &emsp;Bulk materials mined from NEOs (Section 2.1) are not time- or radiation-sensitive. They can be transported entirely by electric engines on tugs that make multiple trips. Since part of the product from these objects is more fuel for the tugs, the transport becomes self-sustaining once started. A tug can return about 750 times its hardware mass over a 15 year working life, while consuming about 17 times its mass in propellant over the same period. Tugs can also efficiently deliver hardware and finished products to other orbits as needed. &emsp;The Moon is small enough that bulk materials can be thrown directly into orbit by electric catapults. Assuming 50% efficiency and 50% duty cycle from lunar night, a solar panel can power throwing 1000 times its own mass per year for a 15 year operating life. If the catapult is not too heavy relative to the total mass it can throw, the overall mass return ratio is high. From low Lunar orbit, electric tugs take over and deliver the materials for processing. There are about five major "ore types" of different compositions on the Moon and NEOs: highlands, maria, carbonaceous, stony, and metallic. Using all of them would supply the widest range of raw materials to make the widest range of products. :'''High Orbit Production''' &emsp;Energy is needed to convert raw materials into finished products. High orbits have abundant '''[https://en.wikipedia.org/wiki/Solar_constant Solar Energy]''', up to 11,930 kWh/m<sup>2</sup>/year. It can be converted to electricity by solar panels or used directly for heating using concentrating reflectors. Modern space solar panels and reflectors are very light weight relative to their power output, since they don't have to withstand gravity or weather. Excess heat can be disposed of by radiators or natural '''[https://en.wikipedia.org/wiki/Radiant_exitance Emittance]'''. Low temperatures can be reached with '''[https://en.wikipedia.org/wiki/Space_sunshade Thermal Shades]''' to block the Sun and other heat sources, and active refrigeration if needed. &emsp;A set of solar panels can supply enough power to start production, since electric power has many uses. Early processing, fabrication, and assembly equipment would come from Earth or low orbit. The first set of products are simple items to be used directly, such as shielding mass, fuel, and basic construction materials. The early production equipment would be supplemented over time by items made in orbit. Over time high orbit industry would transition from importing everything, to making items locally, then exporting products to other destinations. &emsp;Given sources of raw materials and energy, the simplest product of all is radiation shielding for people and equipment. This only requires crushing and sorting, then packing into containers around areas that need protection. Shielding also acts as thermal insulation and impact protection. Shielded modules allow extended crew stays in high orbit. Crews can operate production equipment and perform economic tasks for others, like satellite maintenance and refueling. To some extent the crew can be helped by remote control from Earth. &emsp;Next in difficulty, but not necessarily in priority, are water and carbon compounds, extracted from '''[https://en.wikipedia.org/wiki/C-type_asteroid Carbonaceous-Type Asteroid]''' material. This requires 200-300 C temperatures, which reflectors can supply, and a container and condenser to capture the vapors. Water and carbon can be chemically reformed to oxygen and hydrocarbons, which are common high-thrust rocket propellants. This is useful when transporting people through the radiation belts or for landing on the Moon. They can also be used in electric engines for higher efficiency at lower thrust. Water, carbon compounds, air mined from low orbit, and possibly rock for soil can supply greenhouse modules, so that crews can produce their own food and recycle life support supplies. &emsp;Metallic or '''[https://en.wikipedia.org/wiki/M-type_asteroid M-Type Asteroids]''' are thought to be the source '''[https://en.wikipedia.org/wiki/Iron_meteorite Iron Meteorites]''' found on Earth and Mars. They make up about 5% of known asteroids, with the metal portion being an iron-nickel alloy. A high temperature furnace can melt the alloy, a small amount of carbon added to make a steel alloy, and then cast into basic shapes. &emsp;Steel makes up about 90% of all metal used on Earth. Being able to produce it from space sources would allow a much higher percentage of self-production in space. Subtractive and additive '''[https://en.wikipedia.org/wiki/Machine_tool Machine Tools]''' are used to turn basic metal shapes into finished parts. Those can be assembled, along with some imported items, into new machines, including more machine tools. New machines and constructed metal items can then work with other materials. &emsp;Other space-made products can include '''[https://en.wikipedia.org/wiki/Basalt_fiber Basalt Fiber]''' made from lunar basalts, and '''[https://en.wikipedia.org/wiki/Carbon_fibers Carbon Fibers]''' from asteroid carbon compounds. These are are very high strength-to-weight. Fiber-reinforced metal structures are strong and relatively light weight. They would be useful for all kinds of construction. &emsp;'''[https://en.wikipedia.org/wiki/Vacuum_deposition Vacuum Deposition]''' is relatively easy to do in high orbit since vacuum is the natural state of that region. Products can include lightweight reflector sheets, and parts for radiator panels. These can be combined with high-concentration solar cells from Earth to supply power with less mass than complete panels. '''[https://en.wikipedia.org/wiki/Refractory Refractories]''' are a class of materials that can withstand high temperatures. Some were formed in high-temperature environments in space, and others can be made artificially. They are used in all kinds of industrial processes such as furnaces and cooling systems for thermal processing of materials. &emsp;In the long term, in-space production can supply up to 98-99% of the mass for space projects, greatly reducing what needs to come from Earth. The remaining 1-2% includes materials too rare in space to usefully mine, and products too hard to make relative to importing from Earth. Examples are electronics and drugs, which are already mass produced and high value for their weight. Importing them is easier than trying to make them. :'''Living in High Orbit''' &emsp;After science and and supporting existing satellites, the first people to spend much time in high orbits would be there to build up industry. But ultimately large, comfortable space habitats can be built as permanent living space, like towns and cities on Earth. Like the ones on Earth, they don't have to be built all at once. The first ones can be small, and attached to industrial production facilities. &emsp;Larger residential habitats can also start small, but be designed to grow over time. Growth can be linear or in layers, like an onion. Linear growth can start with modules attached in a ring, with solar panels attached to each. The ring can be spun for artificial gravity. Additional rings can be stacked with the first one, with a ring of reflectors to direct sunlight to all the panels. &emsp;Layered growth adds new pressure shells over compartments outside the previous ones. The outer shells are in vacuum, and provide radiation, meteor impact, and thermal shielding. Inwards of that are pressurized areas for storage and mechanical equipment. Then comes living quarters and a central open space. The entire habitat rotates for artificial gravity. As new layers are added, items are moved outwards to fill the larger space. Compared to building a large habitat all at once, this spreads the construction cost over time, and the habitat is only expanded when extra space is needed. ==='''8.4 - Phase 4C: Inner Interplanetary Locations'''=== &emsp; :'''Inner Interplanetary Features''' &emsp;These are orbits detached from the Earth's dominant gravity and go around the Sun instead, though they may pass close to the Earth at times. They range from as close as equipment can function to the Sun to 1.8 AU. This is just beyond Mars' greatest distance from the Sun (1.666 AU) and where the Main Asteroid Belt starts. It excludes Mercury, Venus, Earth, and Mars, and orbits around them. &emsp;Solar power is available 100% of the time in these orbits, but the intensity varies from 31% to many times that near Earth, depending on Solar distance. Exposed temperature correspondingly varies from 244K (-29C) to very hot for dark objects, and less for bright or reflective ones. Travel time from Earth can range from months to years depending on orbit and propulsion method, and whether gravity assists from the planets are used. These save fuel, but usually require extra time. &emsp;Solar and cosmic radiation are a moderately high background, with occasional flares/solar particle events that are much more intense, up to lethal human levels without shielding. Ping time ranges from a few seconds for orbits crossing near Earth, to over 45 minutes at 1.8 AU on the far side of the Sun, by way of a relay satellite. The Sun interrupts direct communication to the opposite side. &emsp;As noted in section 2.1, there are nearly 32,000 known NEOs as of April 2023, and the number is currently increasing by 10% a year. There are another 1500 which don't come closer than 1.3 AU to the Sun and orbit within 1.8 AU on average. The largest among both sets, '''[https://en.wikipedia.org/wiki/1036_Ganymed 1036 Ganymed]''' isn't particularly easy to reach, but has about 100 times the mass of all the rock ever mined on Earth. So total material resources in this region is large. &emsp;Asteroid orbits vary in size, are typically not circular, and somewhat tilted with respect to Earth's, so the energy required to reach a particular one varies. Timing also matters, since everything moves at different speeds in solar orbits. Efficient travel depends on a vehicle and the target arriving at the same place at the same time. The composition of asteroids vary across about a dozen spectral classes, indicating different chemical compositions. &emsp;There are not many active comets in this region because the Sun's heat evaporates their ices in a short time. About 25 '''[https://en.wikipedia.org/wiki/List_of_minor_planets_and_comets_visited_by_spacecraft Minor Planets and Comets]''' have been visited by spacecraft so far. Most of our knowledge is from telescopes and examining meteorites that have fallen to Earth, and sometimes radar if they come close to us. :'''Economic Uses''' &emsp;There are only a few spacecraft currently in this region. They are mostly scientific probes in transit to other places, or stationed at the Earth-Sun Lagrange points 1 and 2 (ESL-1 and ESL-2). Future use is likely to start with asteroid mining and delivery to Earth orbit with electric tugs. About 75% of discovered asteroids in this region are more than 30 meters in size. This is due to limits of current telescopes rather than actual numbers, and may change with time. 30 meters implies a mass of 20-100 thousand tons depending on composition. This is too heavy to move whole with near-term propulsion. A method that should work with all sizes is scraping loose material or grabbing boulders from asteroid surfaces. &emsp;Prior to mining, prospecting missions should visit multiple candidates for geologic mapping and sampling. Mining would start with asteroids that are easy to reach from Earth orbit, and return bulk ore there to be processed. As Earth orbits become more developed, they can start to send production and habitat equipment to this region in addition to mining. Since raw materials and full-time solar energy are available, this can grow in time to full size factories and produce habitats, vehicles, and whatever else is needed locally. :'''Inner Interplanetary Transport''' &emsp;The early transport in this region would be mainly slow but efficient electric tugs. They can haul large loads of rock relative to their mass, up to 1000 tons for a 10 ton vehicle and 23 tons of propellant. This will vary with the orbit destination and velocity changes needed. Smaller cargo loads can be moved faster with the same propulsion. &emsp;'''[https://en.wikipedia.org/wiki/Gravity_assist Gravity Assists]''' can be used if the Moon and inner planets are in the right positions. Chemical rockets would be used when fast velocity changes are needed. Solar sails may be effective in moving things even more slowly but with no propellant use. This depends on large lightweight reflectors delivered to or made in orbit. &emsp;Over time, a network of "transit habitats" can be built up. These are stationed in repeating orbits between planets and particular destinations. They would be larger, safer, and more comfortable than individual passenger vehicles. They can self-supply from nearby asteroids. This reduces having to send life support equipment and supplies each time for the relatively long trips in the region. &emsp;Rotating platforms called '''[https://en.wikipedia.org/wiki/Skyhook_(structure) Skyhooks]''' can be built to provide both comfortable gravity and fast velocity changes. The platform mass stores momentum from very efficient propulsion that can be exchanged with payloads arriving and departing. The platform needs to be relatively heavy relative to each payload, so it doesn't change its own orbit much in use. Natural asteroids, production "slag" (leftover material not used in products), and the platform's own structure and equipment can serve this purpose. If traffic is balanced in direction, the net orbit change will be minimal. &emsp;Skyhooks can serve as a space equivalent to airports - mainly used to get from one place to another. Like airports, they need enough traffic to justify their construction, and can be developed and upgraded over time. Building them is easier if high strength materials can be produced locally in space. :'''Inner Interplanetary Production''' &emsp;Global primary energy consumption on Earth was 18 TeraWatts in 2021. This includes mining, processing, and manufacturing about 2 million kg/s of materials. So the energy intensity of civilization is 9 MJ/kg on average. We will double this to allow for recycling of materials in space, and add 8 km/s of orbit velocity change, requiring 300 MJ/kg of electric tug power. That covers a reasonable range of interplanetary orbits. &emsp;Transportation rather than production is then the dominant energy use in this region for new materials that need delivery. Modern space solar arrays typically product about 100 W/kg near Earth, and would take 36.8 days to produces the required 318 MJ. With a useful life of 20 years, their total energy output is 200 times that needed to transport their own mass in raw materials and all other energy needed to make replacement panels. Concentrating reflector and nuclear power sources are not yet developed enough for space to do calculate energy return ratios. They may turn out better or worse than solar panels, but as long as we have one known energy source with a high return ratio, we can base space industry on it. &emsp;The same process of bootstrapping production in Earth orbits can be used in interplanetary space. This starts with mining for export, then simple products made locally, and gradually growing to make more complex ones. As distance from Earth increases, fewer raw materials would tend to from the Moon, and more from nearby asteroids. These asteroids are of different types, which provides a reasonable variety of materials to work with. &emsp;If we restrict ourselves to within 20 degrees of the '''[https://en.wikipedia.org/wiki/Ecliptic Ecliptic]''', to maintain access to the planets and keep velocity changes lower, we have access to 1/3 of the Sun's total energy, or 1.3 x 10^26 Watts. This is 7 trillion times our current energy use, a number so large it is hard to imagine it could not sustain civilization. :'''Living Beyond Earth Orbit''' &emsp;Once methods of living in orbits around Earth are developed in the previous phases, doing so in solar orbits beyond the Earth-Moon region can use the same basic technologies. The main adjustments would be for available solar energy and temperature with distance from the Sun, and the kinds of materials found relatively nearby in velocity terms. In space, velocity changes take work, while coasting to a destination merely takes time. &emsp;It isn't yet clear if a "hunter-gatherer" or "sedentary" lifestyle would be more effective. The first means moving equipment to new asteroid locations as needed, while in the second the it stays in a particular orbit, and materials are brought to it. Since everything is in relative motion around the Sun, opportunities will change with time. So choosing a particularly useful asteroid as a home location may be a good strategy. ==='''8.5 - Phase 4D: Mid-Interplanetary Locations'''=== &emsp; &emsp;Living and working in the next region out from the Sun is a smooth continuation of the previous phase, but is different in having lower levels of solar energy and much larger amounts of raw materials. :'''Mid-Interplanetary Features''' [[File:InnerSolarSystem-en.png|thumb|600x600px|Figure 8.5-1 - Main Asteroid Belt and Jupiter Trojan region.]] &emsp;This region includes orbits from 1.8 to 6.0 AU in semi-major axes (Figure 8.5-1). As of 2023 this includes dwarf planet '''[https://en.wikipedia.org/wiki/Ceres_(dwarf_planet) Ceres]''', 1.18 million other Main Belt asteroids, over 5600 '''[https://en.wikipedia.org/wiki/Hilda_asteroid Hildas]''', which are in 3:2 resonance with Jupiter, and over 12,500 '''[https://en.wikipedia.org/wiki/Jupiter_trojan Jupiter Trojans]''' that occupy the Lagrange regions ahead of and behind the planet. It does not include Jupiter itself and the region within 20 million km of the planet (Section 9.4). &emsp;There are around 450 known comets in the region. The '''[https://en.wikipedia.org/wiki/Frost_line_(astrophysics) Frost Line]''' for water is in this region at 2.7-3.2 AU. So this is where many comets become active (give off gas and dust), making them easier to find. Hydrogen and oxygen are the 1st and 3rd most common elements, and helium (2nd) doesn't make compounds. So water is the most common compound of two elements. Objects beyond the frost line tend to have have large amounts of it. &emsp;Solar power is available 100% of the time except shadowed areas on and around objects. Intensity varies from 31 to 2.78% of that near Earth. Temperature varies from 244 to 217K (-29 to -56C) for black objects, and less for lighter colored ones. Travel time from Earth is months to years on minimum energy transits, with high to lethal radiation levels for unprotected people. Ping time varies from 13 to 120 minutes, including a relay to avoid a direct path through the Sun. &emsp;The vast and growing number of known objects in the region have a total mass of about 3 billion Gigatons, which far exceeds the Earth's total mining output of about 60 Gigatons/year. About half the total mass is in the four '''[https://en.wikipedia.org/wiki/List_of_exceptional_asteroids Largest Asteroids]''': 1 Ceres, 4 Vesta, 2 Pallas, and 10 Hygeia. Composition varies considerably between asteroids due to differences in their formation and history. Velocity to reach orbit from the largest body, Ceres, is only 270 meters/second, or 860 times less kinetic energy than from Earth. So all these objects are easy to access once you are near them. The main energy cost is in adjusting your orbit around the Sun. :'''Economic Uses''' &emsp;This region has very few of spacecraft at present, so most uses are in the future. Abundant raw materials of diverse composition, and adequate amounts of solar energy when concentrated, will enable mining and transport to earlier locations as early activities. Previous locations have higher solar intensity for production and habitation. When it makes sense to do so, seed factories and other advanced technologies can help bootstrap a full range of local industry, and eventually large scale habitation. There is enough material and energy in this region to support a full civilization. :'''Mid-Interplanetary Transport''' &emsp;The same transport methods can be used in this region as for the inner interplanetary region. The main difference is adding reflectors to solar panels to make up for the lower solar intensity. Electric catapults and skyhooks are somewhat more efficient for injecting bulk cargo to transfer orbits, because they do point acceleration rather than spiral orbits. If a large asteroid absorbs the reaction force, they also don't need propellant. Gravity assists from the inner planets and Jupiter can also increase efficiency. :'''Mid-Interplanetary Production''' &emsp;The inner parts of this region have enough sunlight for solar panels to produce power directly. In the outer regions, solar panels benefit from reflectors to increase the light intensity. Concentrating reflectors can produce higher temperatures at all distances, either for industrial processes or habitats. Increasing amounts of reflectors are needed as you get farther from the Sun, but they are inherently lightweight in a zero gravity environment with no weather. Note that the total amount of solar energy available in this region is the same as for the Inner Interplanetary region. It has simply traveled farther and is more spread out. The difference is access to larger amounts of raw materials. &emsp;Asteroids are covered in a mixture of rocks and dust of varying sizes. This is the result of repeated impacts over their life and gravitational attraction. In fact, some asteroids are so low in density that they must be "gravel piles", with no solid central body. Since most asteroids are small, the rocks and dust are easily disturbed and can become a hazard to mining and production operations. So material has to be removed carefully without too much disturbance. Alternately the mining area or the whole asteroid can be covered to contain loose material. &emsp;More distant asteroids and comets contain water and other volatile compounds. These can be extracted separately by heating. Bulk or separated products are then moved by tugs to factories for later production steps. For larger operations, a shell can surround the whole asteroid, keeping gas and dust contained. Processing equipment can then be attached to the outside of the shell, and materials delivered continuously until the asteroid is consumed. The mining and production unit can then move to another target, or the target moved to the unit, whichever is lighter. ==='''8.6 - Phase 4E: Outer Interplanetary Locations'''=== &emsp; &emsp;This region is again a continuation of the previous one, with even less solar energy and about 40 times more available materials. :'''Outer Interplanetary Features''' &emsp;Outer interplanetary orbits range from 6 to 60 AU in semi-major axis. The areas close to Saturn, Uranus, and Neptune are excluded. They are accounted for in Phase 5E (Section 9.5}. As of 2023 there are over 500 known '''[https://en.wikipedia.org/wiki/Centaur_(small_Solar_System_body) Centaur]''' objects. These have orbits among the four giant planets, whose gravity makes them unstable over a few million years. There are also thousands of known '''[https://en.wikipedia.org/wiki/Trans-Neptunian_object Trans-Neptune Objects]''' with orbits beyond that planet, making a total of about 3800 in this region. Some, like Pluto and Eris, are large enough to be considered '''[https://en.wikipedia.org/wiki/Dwarf_planet Dwarf Planets]'''. The remainder are in the range of 15 to 850 km, with the lower end set by our current telescopes' ability to find them. There are undoubtedly smaller ones that are undiscovered. &emsp;Available solar power is low, from 2.78% to 0.0278% of near-Earth values. This requires large reflectors to increase intensity, nuclear fission or fusion (if developed), or beamed energy from closer to the Sun. Ambient temperatures are extremely cold, from 160 to 50K for black objects, and lower for lighter ones. Travel time from Earth is typically many years, with high to occasionally lethal radiation levels for unprotected people. Ping time is 1.4 to 17 hours. &emsp;The number of known objects is much smaller than the Mid-Interplanetary region, but their mass is roughly 40 times larger - about 2% of Earth or nearly double the Moon. With increasing distance from the Sun, gases and ices with lower boiling points condensed from the original Solar Nebula. So there is more water, ammonia, nitrogen and other frozen materials, along with rocks and metals. The distinction between asteroid and frozen comet becomes fuzzy, so we call all of them 'objects' and the smaller ones 'minor planets'. :'''Outer Interplanetary Activities''' &emsp;This region is likely too far to use with current technology. Activities beyond science and exploration are far enough in the future that technology is likely to change in unexpected directions. When other activities would start and what they will be is undertain, but we can speculate based on what we know today. The raw materials in the region are different than those closer to the Sun. So the first activities are likely to be mining materials scarce closer to the Sun, and bringing them to where there is more energy to process them. &emsp;Due to weak sunlight in this region, nuclear propulsion and gravity assists from the larger bodies are likely to be major transport methods. The solar system has a limited amount of natural '''[https://en.wikipedia.org/wiki/Radionuclide Radionuclides]''' that can produce useful power levels. If '''[https://en.wikipedia.org/wiki/Fusion_power Fusion Power]''' is not developed enough, they can be made artificially near the Sun where abundant energy is available. If nuclear fusion is well developed, there is abundant hydrogen from which fusion fuels can be produced. &emsp;As distance increases from the Sun, orbit velocities and required velocity changes decrease as the square root of. Solar flux decreases faster, as the inverse square of distance. So solar sails become less effective than for closer regions. Beamed energy from close to the Sun is a possibility. It requires large optics to focus the beam to a reasonable size at destinations in the region. &emsp;We don't expect a lot of production here at first. Water and nitrogen are very useful and found in large amounts. Transport would be slow using minimum energy trajectories. If there is enough demand, a "pipeline" of bulk cargoes in transit could be set up, with vehicles at each end to set them on course and collect them at the end. The cargo can coast in between, saving on vehicle use. Once the pipeline is filled, then cargoes arrive on a regular schedule. &emsp;If lightweight solar reflectors or fusion are developed enough, a full economy based on them may develop, with full production and habitation. We don't see a strong reason to live this far out rather than the warmer and brighter inner regions, but such reasons may develop. ==='''8.7 - Phase 4F: Distant Orbit Locations'''=== &emsp; &emsp;The previous three phases are called 'interplanetary' because they are among or near the eight known major planets. This last region is beyond all of them so we call it 'distant'. :'''Distant Orbit Features''' &emsp;Distant orbits range from 60 AU in semi-major axis to the limits of the Sun's dominance at about 100,000 AU. As of 2023 there are about 1200 known asteroids and comets in the region. It includes about 650 '''[https://www.minorplanetcenter.net/iau/lists/t_centaurs.html Scattered Disk]''' and '''[https://www.minorplanetcenter.net/iau/lists/t_tnos.html Trans-Neptune]''' objects, and a similar number of '''[https://en.wikipedia.org/wiki/List_of_long-period_comets Long Period]''' and '''[https://en.wikipedia.org/wiki/List_of_near-parabolic_comets Near Parabolic]''' comets. &emsp;A few of these objects belong to much larger and more distant populations known as the '''[https://en.wikipedia.org/wiki/Hills_cloud Hills]''' and '''[https://en.wikipedia.org/wiki/Oort_cloud Oort Clouds]'''. For our purposes we define these as orbits with axes from 2000-10,000 AU and 10,000 to where passing stars, gas clouds, and galactic tides make orbits unstable. This is roughly 100,000 AU. The existence of comets whose orbits extend to these distances argues for the cloud's existence. Otherwise no active comets would be left after billions of years. Their total number and mass is only guessed at, but may be billions to trillions and multiples of the Earth's mass. There is some evidence to suspect a major planet is also in this region. &emsp;Current telescopes are limited to finding objects within about 80 AU from the Sun. So only the ones that come within the 60-80 AU range at their closest ''and'' are currently at the near end of their orbits have been found to date. We expect to find many more objects in the region as telescopes improve. Active comets from distant orbits which come close to the Sun give us some information on composition from the gas and dust they emit. &emsp;Solar energy is very weak in this region, below 0.0278% of that near Earth, and temperatures are extremely cold, from 50K down to near the cosmic background of 2.7K. Travel time with current propulsion technology is many years to centuries. Ping time ranges from 14 hours to 3 years. :'''Distant Orbit Activities''' &emsp;Our current information about objects in this region is poor. So any uses beyond science and exploration are deferred to the far future. When that time comes, though, there is a very large reserve of materials that can be put to use. One identified use is the Sun acting as a gravitational lens, with a focus around 800 AU from the Sun, in the Scattered Disk region. Placing telescopes directly opposite a star of interest would allow much more detailed observations than otherwise possible, because of the 2 million km optical diameter of the Sun as a lens. &emsp;To keep transport times within reason, very high energy propulsion would be needed, such as nuclear fusion. Since the light elements needed for fusion are common in these outer regions, this could be self-fueling once set up. Unfortunately, fusion is not yet a viable technology. Transport that uses it remains speculative at present. Due to the low to nearly non-existent solar energy in this region, nuclear energy sources would likely be needed to even consider local production. Production must remain speculative at present. =='''9.0 - Planetary System Locations'''== &emsp; &emsp;The planetary systems of Phase 5 are different in several ways from the orbital locations in Phase 4 and from each other. Specific designs are needed to handle the differences, so we identify separate sub-phases for each. First are their gravity fields, which require energy to travel through and create significant surface gravity. Second are their large sizes relative objects in the orbital regions, and third is the diversity of conditions found on and around the planets. &emsp;Reasons to use planetary systems include access to the different raw materials available, relief of Earth's biosphere by moving industry off-planet, and some people's preference for natural environments. As with orbital locations, the start of each sub-phase is staggered from nearest to furthest, and is preceded by orbital transport that can reach them carrying useful amounts of equipment. So Phase 4 and 5 projects will overlap in time. ==='''9.1 - Phase 5A: Lunar Locations'''=== &emsp; &emsp;Earth is one of the eight major planets in the Solar System. It is already occupied and developed, and we covered using our technical approach earlier in this report. We also covered most orbits around Earth in Sections 8.2 and 8.3. The exception was the '''[https://en.wikipedia.org/wiki/Moon Moon]''' and the area around it. We place it here among other planetary systems since lunar activities are more similar to those for smaller planets and the larger moons of the other planets. :'''Lunar Features''' &emsp;The Lunar region includes the Moon itself, and orbits with semi-major axes below 35,000 km . These are close enough to be relatively stable. Lunar orbits in general are somewhat unstable. The Moon has mass concentrations from past impacts that create an uneven gravity field (Figure 9.1-1). The Earth and Sun are also much more massive than the Moon, and have significant effects on objects orbiting it ([https://link.springer.com/article/10.1134/S0038094617070061 ''Gordienko, 2018'']). &emsp;The Moon has the same average distance from the Sun as the Earth, so available solar energy and basic temperatures ranges are the same. Sunlight is partly blocked in lower Lunar orbits, and blocked about 50% of the time on the surface over a 29.5 day cycle. Surface gravity averages 1.62 m/s<sup>2</sup>, or 1/6th of Earth, with a total variation of 0.025 m/s<sup>2</sup> by location. &emsp;Escape velocity from the Lunar surface is 2380 m/s, or 21% of Earth. So escape energy is only 4.5% of Earth's. Low orbit velocities are 1680 m/s or less, and 700 m/s more is needed to escape from them. Circular orbit velocity at the upper edge of the region is 375 m/s, and escape is an added 155 m/s. Surface area of the Moon is 37.93 million km^2 measured horizontally, or about one quarter of the Earth's land area. Sloped terrain increase the total exposed surface area. [[File:Moon_gravity_acceleration_map_LGM2011.jpg|thumb|right|800x450px|Figure 9.1-1 - Lunar surface gravity map. Near side on left, far side on right.]] &emsp;Earth is only 81.3 times the Moon's mass. So the center of mass of both averages 1/4 of the way down from the Earth's surface to it's center. Both move around this center every 27.3 days with respect to the stars. Since both also orbit the Sun, the Moon's orbit and day lengths are not the same. &emsp;The Moon is tidally locked to Earth, and keeps approximately the same side facing us. It is not exact because the Moon's orbit is not circular, it has a slight residual pendulum motion, and we have different vantage points from the Earth's surface. So about 59% of its surface can be seen from Earth over time. The two hemispheres are called the "near" and "far" sides. There is no "dark" side, since both get sunlight during a lunar day. &emsp;Orbits around the Moon vary from 108 minutes close to the surface, to 6.8 days for the largest ones in the region. Travel time from Earth is 3-4 days for direct transfer orbits. Electric propulsion is much more efficient, but also much slower. Without shielding, travel to and staying on and around the Moon can expose people to lethal radiation levels. This is from Earth's radiation belts, solar, and cosmic sources. Ping time from Earth to the Lunar region varies from 2.2 to 2.94 seconds, depending on where in the region, and the Moon's distance in it's orbit. This includes satellite relay time if communicating with areas that can't be seen directly from Earth. &emsp;The Moon has a somewhat variable and reasonably well understood '''[https://en.wikipedia.org/wiki/Geology_of_the_Moon Geology]'''. This is known from a number of lander and orbital missions, some of which returned samples, and '''[https://en.wikipedia.org/wiki/Lunar_meteorite Lunar Meteorites]''' thrown to Earth by impacts. Broadly, the surface is oxide minerals with silicon, iron, calcium, aluminum, and magnesium, in order of abundance, and 3-4% other elements. &emsp;The Moon is too small and warm to keep an atmosphere. With nothing to stop them, the surface has been heavily cratered and broken up by repeated impacts of all sizes. The result is a '''[https://en.wikipedia.org/wiki/Lunar_soil Regolith]''' or lunar soil that has been tossed around many times. It is a mix of the original crust and the remains of impacting objects. There is no weathering like on Earth, but the solar wind can charge dust particles which then move, and temperature cycles cause rocks to crack near the surface. :'''Economic Uses''' &emsp;The Lunar region is embedded in the High Orbit region, and reaching it from Earth is possible with current and near-term transport. Science and exploration activities are already in progress. Further development can start as soon as there are economic reasons for it. The first uses are likely to be local on the surface, and from the Moon's relative closeness to populated satellite orbits and low energy to reach these orbits. For example, some '''[https://en.wikipedia.org/wiki/Lunar_water Water]''' appears to be trapped in cold polar craters on the Moon. It has multiple uses, and could be delivered relatively efficiently to high and low Earth orbits. &emsp;Regolith mining can supply enough materials for much larger projects on the Moon and nearby orbits. The loose surface layer averages 5 meters thick across the whole Moon. It can be collected without using heavy equipment and totals about 300,000 Gigatons, or 7,000 years of Earth's total stone and sand mining in 2020. Projects that use lunar (and asteroid) materials are not as limited by launch mass and cost from Earth, so they can use simpler and heavier designs. In the future, production that uses lots of energy, or have hazards and side effects, could be moved to space to reduce the burden on Earth's environment. &emsp;Satellites that beam energy to Earth is one possibility. If this can be done economically, it might become the largest export market from orbit. Renewable energy on Earth is now relatively low cost, but it is variable and some places have poor conditions for using it. There is 10 times more solar energy in space than such places and it is more predictable. So it may prove useful, despite the extra cost of building in space. :'''Lunar Transport''' &emsp;Early landings on the Moon would not have the support of much infrastructure. They would use current high thrust chemical rockets to access the surface. At first, all propellants would come from Earth. Water from polar lunar craters can supply 83.5% of methane/oxygen propellant, and and also life support supplies, reducing the mass needed from Earth. Carbonaceous type asteroids contain up to 20% carbon compounds and water. These can be reformed chemically to CH<sub>4</sub> and O<sub>2</sub> and fully replace Earth supplies. How much would come from each source will depend on cost and availability. &emsp;Over time, chemical propulsion can be replaced by more efficient methods. As mentioned in Section 8.3, an electric catapult can deliver 1000 times a solar array's mass per year from the surface to Lunar orbit. Electric propulsion can then move lunar and asteroid materials a common orbit for processing. High orbits around the Moon or Earth are preferred for their near-full time sunlight and a combined low velocity to reach. Both propellants and other products can be made with processing and manufacturing equipment in the same location. &emsp;Lunar basalt and carbon from asteroids can be used to make high strength fibers. These can be used to build an efficient skyhook system in lunar orbit. Such a system makes sense if there is enough traffic to the Moon. If the tip velocity is equal to orbit velocity they cancel, and trips to the lunar surface would need very little fuel. A lander can be dropped off and picked up at low altitude. It would not be dropped directly on the surface because of the variable gravity field and heights of lunar mountains and crater walls. &emsp;If the skyhook is in near-polar orbit, it can access any point on the surface every 15 days as the Moon rotates below it. Using other angles of the skyhook's rotation, and by climbing to different distances from the center, arrival and departure directions and speeds up to 1.41 times lunar escape are possible. Catching and releasing vehicles affects the skyhook's orbit. If traffic is balanced in direction and mass, and the skyhook is massive enough, it is a temporary change. If traffic is more in one direction than the other, the difference can be made up by electric propulsion at high efficiency. &emsp;Low gravity is known to be harmful to people. If the skyhook radius is about 250 km, the tip acceleration will be about 1 g, which avoids this problem. A large supply of lunar materials can supply shielding. With these people can live comfortably and safely. They are close enough to the lunar surface to operate equipment by remote control in real time. Alternate solutions are using rotating habitats on the surface or limiting stay times. :'''Lunar Production''' &emsp;The advantages of using the Moon are relative closeness to high orbits, and low energy to move cargo. But there are few low boiling-point materials left on the Moon, because it formed in a molten state, suffered many high energy impacts and early tidal heating, and is too small to keep an atmosphere. A fully-developed space economy would need to supplement lunar materials with those from nearby asteroids and from Earth. Some materials are too rare to usefully mine in space, and some products are too hard or expensive to make there relative to delivery from Earth. So two-way trade can develop for lunar activities to support themselves. &emsp;Early Lunar production can start with mining bulk regolith for radiation/thermal/impact protection, and polar ice for propellant and life support. These don't need a lot of complex equipment. More energy-intensive and complex processes like vacuum oxide reduction and '''[https://en.wikipedia.org/wiki/Carbothermic_reaction Carbothermic Reactions]''' can separate oxygen and various metals from the regolith. Seed factory equipment can be used to bootstrap making other products for local use and export. As better transport systems are installed in sequence, the cost of delivery elsewhere will decrease. &emsp;Solar energy will likely be the dominant energy source for lunar production. Silicon for solar cells, aluminum for reflectors, and other metals for structures are widely available from the regolith to provide solar power. However some craters with water are permanently shadowed, the lunar night is two weeks long, and large solar plants are not very portable. So other energy sources may be useful. &emsp;Some regions of the Lunar surface contain ~10 parts per million Uranium and Thorium. The ore has an energy content of about 800 MJ/kg (20 times that of coal on Earth). Helium-3 has been proposed as a fusion fuel to be mined from the Moon. Although the energy content of pure He-3 is 200 TJ/kg, the concentration is only 15 parts per billion or less, resulting in an ore content of only 3 MJ/kg. So fissionable elements are a better energy source on the Moon in terms of energy produced per ton of mined ore. &emsp;Other energy sources for the Moon can include the rims of shadowed craters, where sunlight is highly available, microwave or laser beamed power across terrain or from orbit, and even fuel cells or batteries for portable power. Thermal energy storage is an option using the vast amount of rocks and dust as the storage medium, and the natural vacuum as insulation. The material is heated during the day by sunlight, and the heat used to generate power during the Lunar night. :'''Living in Lunar Locations''' &emsp;Low gravity is known to be harmful, so long-term habitats on the Lunar surface may require rotation to create artificial gravity. An example would be a large habitat dome for spaciousness, and a centrifuge built around the rim for living quarters. Residents would spend enough time in the centrifuge to maintain health, but could work and enjoy the low gravity the rest of the time. &emsp;We have essentially no data on how much gravity is enough between zero and 1.0. We know the body deteriorates over time in zero gravity. So as a worst case, people would need to spend most of their time in a one gee environment of some type, but this subject needs more research. Another option is limiting permanent stay times on the surface. People would live mostly in orbit with artificial gravity and operate most equipment by remote control. &emsp;The other requirements for people to live and work in the lunar region have mostly been solved by existing space stations, and using bulk materials for shielding. One exception is lunar dust, which is abrasive, toxic, and is everywhere on the surface. Various methods to deal with it have been proposed, but R&D is needed to figure out which work best. ==='''9.2 - Phase 5B: Mars Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Mars Mars]''' is next among planetary locations in terms of velocity and time to reach, and the environment conditions there. It is a large step beyond the Moon, but Mars is within the inner interplanetary region (Section 8.4) that Earth also occupies. So we expect Martian activities to start after some level of development of the region in-between. :'''Mars Features''' &emsp;The Mars region includes the planet, two small moons, and reasonably stable orbits with semi-major axes up to 340,000 km (100 radii). Its orbit around the Sun is 9.3% eccentric, varying from 1.38 to 1.67 AU in distance. Solar flux varies with distance from 494 to 716 W/m<sup>2</sup>, or 36 to 52.5% of that near Earth. Surface gravity varies from 3.683 to 3.743 m/s<sup>2</sup>, a 1.6% range, with a reference value of 3.711 (3/8ths of Earth). Lower values are near the equator and atop tall mountains, while higher values are at lower altitudes in the north polar region and '''[https://en.wikipedia.org/wiki/Hellas_Planitia Hellas]''' basin. &emsp;Ping time from Earth varies from 6 to 45 minutes, depending on relative orbital position and need for a relay satellite to avoid the Sun. Unprotected radiation levels range from high to lethal, but the Mars surface and its moons provide ample material for shielding. &emsp;Escape velocity from the surface is 5,027 m/s, and is 502 m/s at the upper edge of the orbital region. Circular orbit velocities are 70.7% of escape. This ratio holds for orbits around any body. Escape energy is 20% that of Earth. Orbits around Mars vary from 100 minutes for low ones to 70 days at the edge of the region. Surface area of Mars is 144.8 million km<sup>2</sup>, or 97% of Earth's land area. Day length is 24h 40m, slightly longer than Earth, and the Martian year is 1.881 Earth years. Travel times vary according to the relative positions of Mars and Earth, and the transport method used. When aligned, minimum energy orbits average 7 months one way. &emsp;The moons '''[https://en.wikipedia.org/wiki/Phobos_(moon) Phobos]''' and '''[https://en.wikipedia.org/wiki/Deimos_(moon) Deimos]''' have near-circular orbits of with 9,377 and 23,460 km radius. They have mean diameters of 22.5 and 12.4 km, but are irregular shapes. They have a combined mass of 12,800 Gigatons, or 290 years of Earth's rock and sand mining. This is a significant orbital resource. They are likely collected impact debris, so similar to Mars in composition. [[File:Generalised_Geological_Map_of_Mars.jpg|thumb|700x1024px|Figure 9.2-1 - Generalized geologic map of Mars.]] &emsp;The atmosphere is 96% CO2, a bit under 2% each Argon and Nitrogen, and an assortment of trace gases. Surface pressure varies from 30 Pascals at the top of Olympus Mons to 1155 Pascals in the Hellas basin. The high value is 1.14% of sea-level pressure on Earth. Pressure varies by 30% annually, as some of the CO2 freezes and evaporates at the poles. Surface temperatures vary from 120 to 293K (-153 to 20 C), depending on latitude and season. Typical day-night variation is 70K/C because the atmosphere does not have much thermal mass. &emsp;Mars has quite a varied surface geology, as a result of internal melting and vulcanism, impacts, and much higher levels of water and atmospheric pressure earlier in it's history (Figure 9.2-1 from '''[http://pubs.usgs.gov/sim/3292/ USGS Map 3292, 2014]'''). There is significant amounts of water in the soil as hydrates, permafrost, and in thick dusty ice caps. :'''Economic Uses''' &emsp;Human activity in the region can begin with a scientific outpost. It would be an extension of existing robotic exploration, and Phase 4C activity among asteroids in the surrounding region (Section 8.4). The outpost and relay satellites are placed in orbit close enough to Mars for real-time remote control. Surface robots carry out science and sample collection at first, with some samples returned to the outpost for further analysis. Most outpost supplies can come from Mars' moons and nearby asteroids. &emsp;Over time, other robots and equipment are delivered to the surface to start to preparing for people. Once enough supplies and basic production are in place, they can start to visit. This approach delays risking people on the surface until a supply chain and reliable two-way transportation is available. &emsp;As more production capacity is built up on Mars and surrounding orbits, it can start to transition from science to prospecting for unique resources, building up local habitation, and a full economy. Since Mars has almost the same land area as Earth, there is plenty of room to do this. Building up activities in the Mars region would be a relatively small extension from previous regions. So it is not a large cost burden, but rather an investment in further growth. :'''Mars Transport''' &emsp;In Phases 4B and 4C (sections 8.3 and 8.4 above), electric tugs were used to move asteroid materials back to Earth/Moon orbits for processing. To expand towards Mars, the same type of tugs move materials from Near Earth or Near Mars orbits to specific '''[https://en.wikipedia.org/wiki/Mars_cycler Mars Cycler]''' orbits. These orbits allow repeat flybys of Earth and Mars using gravity assists. Given the many thousands of asteroids in the interplanetary region, some of them have low velocity to and from a cycler orbit. &emsp;Other tugs deliver habitat modules and initial processing equipment from near Earth to the same orbit. The raw asteroid materials are distributed around the habitat for radiation shielding, and used as a counterweight for artificial gravity. At the next opportunity a crew meets up with the new "Mars Transfer Station", and begins to process the raw materials into fuel, air, water, metals, etc. They also establish a greenhouse to produce food. When raw materials run low, a tug is sent to another nearby asteroid to get more. &emsp;Whenever the Transfer Station is near Earth, new crew, equipment, and supplies can be delivered. Crew aboard the transfer station are safe from radiation hazards, have gravity to maintain health, and can eventually produce most of what they need themselves. The Station can be used multiple times to bring new crews to Mars, saving mass over carrying a life support system and supplies for every trip. Cargo besides people can travel to the Mars region directly with tugs. &emsp;When the transfer station is built up enough, a set of crew detach and inject into Mars orbit. The Martian moons then become a source of materials in addition to nearby asteroids. Eventually enough propellants are produced locally for trips to the planet's surface. &emsp;Chemical rockets consume a lot of propellants traveling back and forth from the surface. In the longer term, some combination of skyhook and surface catapult can replace most of that. These would be large projects, but the propellant savings for each trip makes up for it. Carbon from asteroids or the moons, and basalt from Mars, can be used to make the strong fibers for such systems. &emsp;Skyhooks can start small with low capacity, but their orbit parameters and timing would be shifted from bulk going up. Linear or rotary electric catapults on the surface are attached to the planet and not affected this way. To limit drag losses they would be built on the large Martian volcanoes. Mixed use of both systems is also possible. It is too early to choose among these or other options, but chemical rockets are inefficient. In the long run something better would be preferred. :'''Mars Production''' &emsp;Like other phases of our program, the production in the region starts with mining raw materials for basic products with ready-to-use equipment. Seed factory equipment is delivered to orbit and the surface as needed. This bootstraps more diverse, larger scale, and advanced production. The supply chain from Earth and intermediate regions supports this with regular deliveries. &emsp;Mars has a different history than asteroids, so it likely has sources of volatile compounds and minerals not common in the orbital regions. Very efficient bulk transport is desirable for an export market to develop. Because the gravity well of Mars requires large-scale systems to do this, exports may not be economic right away, but rather need a build-up period in the region first. :'''Living in Mars Locations''' &emsp;Living in the orbital region around Mars would be similar to high orbits around Earth or the interplanetary region that surrounds both. There would be minor differences in available solar energy and local material sources. Living on the surface would require adapting designs to local conditions of gravity, temperature, and other parameters. Since gravity is 3/8 Earth normal, that includes how to maintain health for people and other living things. Example methods are body weights and rotating habitats. &emsp;'''[https://en.wikipedia.org/wiki/Terraforming Terraforming]''' Mars has often been suggested because it is already the most similar place to Earth. Doing this for a small population is likely too much effort for the amount of use it would get. When the population gets large enough or technology has advanced enough the local population (Martians) can decide if terraforming makes sense. Self-improving production systems can make such a project easier. &emsp;An alternate approach is to use habitat domes to provide a feeling of being outdoors. Internal pressure would be much higher than outside. So lightweight domes need a lot of structure and anchoring to avoid lifting off the ground. Domes can be weighted down by bulk soil and rock, or using thick glass. These also provide radiation, temperature, and impact protection. ==='''9.3 - Phase 5C: Venus and Mercury Locations'''=== &emsp; &emsp;'''[https://en.wikipedia.org/wiki/Venus Venus]''' and '''[https://en.wikipedia.org/wiki/Mercury_(planet) Mercury]''' are the next in difficulty after Mars. They have abundant solar energy available, but as a result are mostly very hot. There are relatively few nearby asteroids to start orbital development with. :'''Venus and Mercury Features''' &emsp;The Venus and Mercury regions include the planets, and relatively stable orbits within 600,000 and 100,000 km of their centers, respectively. Like Earth they are embedded in the Inner Interplanetary region (Section 8.4). They have no known moons. So the main interest is the planets themselves and activity around them. Venus' orbit is nearly circular at 0.723 AU, while Mercury's is 20% eccentric and varies from 0.307 to 0.467 AU. &emsp;Solar flux is 1.9 times higher than near Earth at Venus, and 4.6-10.6 times higher at Mercury. Equilibrium temperatures in sunlight are 17% and 46-80% higher in Kelvin. The surface temperature is 735K (462 C) for Venus, from a thick atmosphere with a strong greenhouse effect. Mercury ranges from below 100K in shadowed polar craters, to as high as 700K at the sub-solar point at perihelion. A given location can vary nearly this whole temperature range due to a 58.6 day rotation period. Venus's rotation takes 243 days, but the atmosphere mostly eliminates temperature changes. &emsp;Venus' surface gravity is 8.87 m/s^2 (90% of Earth), and Mercury's is 3.7 m/s^2, the same as for Mars. Escape velocities are 10.36 and 4.25 km/s from their surfaces and 1,041 and 664 m/s from the outer edge of their regions. Orbits range from 90 minutes to 59 days around Venus, and 85 minutes to 15.5 days around Mercury. Ping times from Earth vary from 4.3 to 30 minutes for Venus, and 9 to 25 minutes for Mercury. Travel times by least energy transfer orbits are 4.8 and 3.5 months respectively. &emsp;The '''[https://en.wikipedia.org/wiki/Geology_of_Venus Geology of Venus]''' appears to be mostly volcanic, and it has lost most of its water to space. The atmosphere has a surface pressure of 9.2 MPa (90.8 times Earth), and is composed of 96.5% CO2 and 3.5% Nitrogen, with some trace gases. While it is very hot at the surface, moderate pressures of 0.5 times Earth and temperatures around 27 C exist at 55 km altitude. Mercury has only a trace atmosphere, and a '''[https://en.wikipedia.org/wiki/Silicate_mineral Silicate]''' surface about 40% O, 25% Si, 11% Mg, 6% Al, 4% each Ca and Fe, and 2% S. Polar regions can have surprisingly moderate average temperatures, and water ice has been found in shadowed polar craters :'''Economic Uses''' &emsp;Near-term use of Venus and Mercury is more difficult because of the higher velocity to reach them and generally hostile temperatures. Scoop-mining gases from the upper reaches of Venus' atmosphere is a possibility. In the mid-term, floating habitats are possible at altitudes where temperature and pressure are reasonable. Polar stations on Mercury can take advantage of lower average temperatures with proper insulation. In the long term asteroid iron or aluminum can be used for orbiting sunshades to cool both planets where needed. &emsp;Reducing temperature lowers the scale height of Venus' atmosphere, and preferentially lowers the pressure of the high altitude regions of the planet, making them more accessible. There is the possibility that low enough temperatures will promote carbonation of the volcanic surface minerals, further lowering pressures, and that this process can be enhanced artificially. If the surface conditions can be made more tolerable, then large scale access to raw materials plus high energy available in orbit could promote industry. &emsp;It takes 7 to 12 km/s velocity change to travel from near Earth to the Venus and Mercury orbit regions, and therefore 0.15 and 0.27 kg of propellant per kg cargo using electric thrusters. This does not account for gravity assists or skyhook transfers. These require 263 and 474 MJ of solar power respectively. If the cargo is all solar arrays, or equivalent thermal power generation, they will produce an additional 13.75 and 91.5 MJ/day added power output, and repay the extra energy use in 19 and 5.2 days respectively. So energy-intensive processes highly favor going closer to the Sun. :'''Venus and Mercury Transport''' &emsp;Higher orbit speeds as you get closer to the Sun means more velocity changes are needed to reach them. Like elsewhere, gravity assists and skyhook systems can help do this more efficiently. Solar-powered electric propulsion is quite viable closer to the Sun. Solar flux increases faster then velocity changes, so this introduces the possibility of solar sails as an additional transport method in the inner regions. The advantage of solar sails is they do not consume propellant. But in the outer Solar System low solar energy makes them very slow. &emsp;For example, reflected sunlight provides 15.5 Newtons/km^2 at Venus, and a 1 micron thick Magnesium-Aluminum sail would mass 2400 kg/km^2. This generates 558 m/s/day acceleration for the bare sail. This is reduced by the remaining structure and cargo mass, and by angling the sail to control thrust direction. This acceleration is comparable to that for electric propulsion using solar array mass near Earth. A combined system can take advantage of reduced propellant use from a sail and wider thrust angles from the electric engines. :'''Venus and Mercury Production''' &emsp;Production in the Venus and Mercury regions would likely start in orbit as an extension of Inner Interplanetary activity. The higher solar flux relative to energy needed to reach inner orbits favors processes that need lots of energy. Raw materials can come from nearby and imported asteroid sources, and possibly scoop mining gas from Venus orbit. There are only 59 known asteroids whose orbit is entirely inside Earth's, and less than 2500 others whose orbit is smaller than Earth's and cross inside of it. This is only 0.2% of the total known, so many materials may have to be imported from farther away. &emsp;Habitats to support production, with artificial gravity, thermal, and radiation shielding can be built in more developed regions and transported to Venus and Mercury orbit to start with. Surface catapults are possible from Mercury's polar regions, where temperatures are more moderate. The combination of materials delivered at least partly by solar sailing and abundant solar energy should allow production to grow in time. :'''Living at Venus and Mercury''' &emsp;Living in orbits around the two planets would be similar to the nearby interplanetary region, and not require much new design. The planets themselves are mostly hostile in their current state, so we expect few other habitats would be built beyond possible science and exploration outposts in the mid-term. If planet-scale terraforming becomes feasible, mostly by blocking excess sunlight, non-industrial habitats may develop in the long-term. ==='''9.4 - Phase 5D: Jupiter System Locations'''=== &emsp; &emsp;Development of the '''[https://en.wikipedia.org/wiki/Jupiter Jupiter System]''' would likely follow the Mid-Interplanetary (Section 8.5), as its orbit is near the outer edge of that region. It isn't clear if the Jupiter region will be easier or harder to develop than Venus and Mercury. :'''Jupiter System Features''' &emsp;The Jupiter System includes the largest planet in the Solar System (317.8 Earth masses), and reasonably stable orbits around it with semi-major axes less 25 million km. It includes four '''[https://en.wikipedia.org/wiki/Galilean_moons Galilean Moons]''' more than 3000 km diameter, named as a group after their discoverer. As of 2023 there are 91 known '''[https://en.wikipedia.org/wiki/Moons_of_Jupiter Smaller Moons]''' from 1-170 km in size. The larger moons can support their own reaxonably stable orbits, and can be used for gravity assists to change orbits in the Jupiter system. &emsp;Solar flux varies from 3.3-4.1% of that near Earth, so concentrating reflectors are useful in this region. Escape velocity is 59.5 km/s from just above the atmosphere, or an added 24.6 km/s from low orbit. Escape is 3.11 km/s from the edge of the region. Orbit periods range from 174 minutes to 2.26 years. Travel time from Earth by minimum energy orbit is 2.7 years, while gravity assists and other propulsion methods can increase or decrease the time. Ping time is 1.06 to 1.85 hours, depending on relative orbit locations. &emsp;Jupiter has a strong magnetic field which creates intense radiation belts. This ranges from high to immediately deadly levels for unprotected people, and can rapidly degrade even shielded electronics. Outside these belts, the usual solar and galactic radiation is still a hazard. Temperature in Jupiter System orbits are about 217K (-56 C) for black objects, and less for lighter colored ones. Jupiter is a Gas Giant, and therefore has no solid surface. The atmosphere is 90% Hydrogen, 10% Helium, plus trace gases. Orbit minus rotation velocity is 29.5 km/s, making it very difficult to access the planet itself or even mine the atmopshere from orbit. &emsp;The four large moons (Io, Europa, Ganymede, and Callisto) orbit 0.422, 0.671, 1.07, and 1.88 million km from Jupiter in nearly circular orbits. They have a combined surface area of 232.8 million km^2, or 1.56 times the land area of Earth. They have negligible atmospheres. All four are tidally locked to Jupiter, so their days are equal to their orbit periods of 1.77, 3.55, 7.15, and 16.7 days. Surface gravity varies from 1.23 to 1.80 m/s^2, or 12.5 to 18.4% of Earth. &emsp;Io's surface is volcanic deposits and sulfur compounds. The other three large moons are either entirely or partially covered in ice, with various minerals and frozen compounds making up the rest of their surfaces. Surface temperatures of the large moons range from 70-165K, except for volcanic hot spots on Io, and vary mostly by latitude and how close they are to Jupiter, which determines how much reflected light they get on the near side. :'''Economic Uses''' &emsp;Use of the Jupiter System would likely follow the Main Belt and Trojan locations in Phase 4D. There are 12,500 Jupiter Trojans vs 91 smaller moons around Jupiter, and the Trojans are much larger in total mass. Since Jupiter's gravity well requires more velocity to navigate, there is no particular reason to use the smaller moons except as a way to access the larger ones. The outer Jovian moons are likely captured asteroids, and are the same Solar distance as the Trojan group. So they don't represent new technical challenges. &emsp;The large moons together have 6.6% of Earth's mass, or 5.4 times that of Earth's Moon. They can be a very large source of materials, with some significant variations in composition. Early uses are likely to be mining-based, with return of materials to more developed regions. Even the largest moon, Ganymede, has a low enough orbit velocity that a catapult or skyhook can deliver directly to orbit, after which an electric tug can transport it elsewhere. Water is widely available in the Jupiter System, both for life support and propellant. High radiation close to the planet requires careful design for habitats and electronics. Remote control from a safe distance is a possibility. :'''Jupiter System Transport''' &emsp;Transport from the Mid-Interplanetary region and closer to Earth can start with electric propulsion, and for people use shielded habitat modules. High-thrust landers can be used to start with for the large moons, while skyhooks and catapults can be brought or built later for higher efficiency. Since these would already be developed for previous locations, not much new design would be needed except for radiation protection close to the planet. Transfer habitats in cyclic orbits with heavily shielded sections is a design option. Those sections are used when when close to the planet. We don't expect to land on or mine Jupiter itself until far in the future because of the extremely high energy required. The other Gas Giants are easier to access and have milder radiation belts. :'''Jupiter System Production''' &emsp;Growth of local production follows the usual path of mining first, then bringing seed factory equipment to bootstrap other industries. The smaller outer moons can be an early source of fuel and water. Rocky and metallic materials may need to be imported from the surrounding regions, depending on the composition of the moons. Large reflectors would be a desirable early product to generate power and heat. :'''Living in the Jupiter System''' &emsp;Living in the outer parts of the Jupiter system is very similar to the Trojan asteroid regions, as they are the same average distance from the Sun. Only '''[https://en.wikipedia.org/wiki/Callisto_(moon) Callisto]''' among the large moons has tolerable radiation levels at its surface. The closer moons and orbits around and among them require significant shielding. Water is a good shielding material, and all the large moons have lots of it. ==='''9.5 - Phase 5E: Outer Giant Locations'''=== &emsp; &emsp;The three outer giant planets, '''[https://en.wikipedia.org/wiki/Saturn Saturn]''', '''[https://en.wikipedia.org/wiki/Uranus Uranus]''', and '''[https://en.wikipedia.org/wiki/Neptune Neptune]''', are next in difficulty from distance and lower solar energy. This is compensated somewhat by lower masses than Jupiter, so smaller velocity changes are needed to work around. :'''Outer Giant Features''' &emsp;The three planets average 9.55, 19.22, and 30.11 AU from the Sun. These planets and their orbital regions are embedded in the Outer Interplanetary region of Phase 4E (Section 8.6). Saturn's orbital region extends 30 million km from the planet center, and includes 83 '''[https://en.wikipedia.org/wiki/Moons_of_Saturn Known Moons]''' as of 2023. Eleven of these moons are larger than 100 km, of which five (Tethys, Dione, Rhea, Titan, and Iapetus) are larger than 1,000 km, with Titan being 5,150 km in diameter (75% of Mars). &emsp;Uranus' region is 24 million km in radius, and has 27 known '''[https://en.wikipedia.org/wiki/Moons_of_Uranus Moons]'''. Five of them (Miranda, Ariel, Umbriel, Titania, and Oberon) are considered major, ranging from 470 to 1575 km in diameter. Neptune's region is 50 million km radius, and has 14 known '''[https://en.wikipedia.org/wiki/Moons_of_Neptune Moons]''', of which Triton is by far the largest at 2700 km diameter. The larger moons of all three can support stable orbits and enable gravity assists. All the giant planets, including Jupiter, have ring systems. Saturn's is the most massive at an estimated 30 million Gigatons, almost as much as the 400 km moon Mimas, which orbits nearby. &emsp;Solar energy is weak in these regions, about 1%, 1/4%, and 1/9% of that near Earth. Large reflectors would be needed to bring sunlight to useful levels. Nuclear power may be more effective. Escape velocities are 35.5, 21.3, and 23.5 km/s from each planet, and 1,535, 682, and 255 m/s from the edge of their regions. Orbit periods are vary from 250, 180, and 155 minutes close to the planets, to 3.8, 9.9, and 27 years at the edge. Travel times are 6, 16, and 30 years by minimum energy orbits. Gravity assists and added propulsion can shorten the trips. &emsp;Ping times average 2.65, 5.33, and 8.35 hours, plus or minus about 20 minutes for relative planetary positions. Radiation levels around Saturn are about as high as Earth's Van Allen Belts, so added shielding is needed for people and electronics. It is most intense between the ring system and the moon Enceladus. Radiaition around Uranus and Neptune are lower, but still include the solar and cosmic background flux present in most parts of the Solar System. &emsp;Like Jupiter, the outer Giants have no solid surface. Their atmospheres get denser with depth until they are beyond the '''[https://en.wikipedia.org/wiki/Critical_point_(thermodynamics) Critical Point]''' and reach liquid density and higher. The upper portions are 96% hydrogen, 3% helium for Saturn; 83% hydrogen, 15% helium, and 2.3% hethane for Uranus; and 80% hydrogen, 19% helium, and 1.5% methane for Neptune. All three have small amounts of trace gases. Orbit minus planet rotation velocities are 15.2, 12.5, and 13.9 km/s. Scoop mining their atmospheres would be hard, but should be feasible. :'''Economic Uses''' &emsp;The outer Giant regions are too far for near-term use. Their development could start once the Outer Interplanetary region around them is accessible. The first use is likely to be mining various raw materials. The combined total of 124 moons and one major ring system around these planets have a mass of 1720 x 10<sup>20</sup> kg, or 2.34 times the Moon. This is a very large source of materials, but their distance means mining them will be delayed. Mined material would likely be brought back back to inner regions where there is more energy for processing and projects that need them. Other uses besides mining are too far in the future to predict right now. &emsp;Titan has a thick Nitrogen atmosphere (1.4 times Earth pressure) with 1.4% Methane at upper levels and 4.9% at lower levels. Low orbits are about 1.8 km/s, so scoop-mining this atmosphere is particularly easy. Helium-3 has been proposed as a low radiation fusion fuel. Fusion in general has not yet been solved, and the He-3 reaction is 10 times harder than deuterium-tritium (D-T), which is the main target of current research. &emsp;If either kind of fusion becomes feasible, scoop-mining the outer Giant atmospheres may become economic because of its high energy output, and the light gases also make good propellants. All three giants have deuterium, and Uranus and Neptune have the highest concentrations of Helium in their atmospheres, and thus the He-3 isotope. The easier D-T fusion should enable trips to these planets in reasonable time. :'''Outer Giant Transport''' &emsp;Chemical rockets have sent probes to the outer planets, but this is very inefficient. As in other regions, gravity assists from massive bodies, surface catapults, and skyhooks can be used to improve transport efficiency. Solar power has been used for probes as far as Jupiter and its Trojan asteroids, but reflectors to increase power for propulsion in farther regions hasn't yet been developed. Current work is on small fission reactors for a variety of uses, including nuclear-electric propulsion, which would be much more efficient than chemical. &emsp;Fission and fusion fuels have high energy content but the reactors to use them tend to be higher mass than solar power. The also emit harmful radiation, but most parts of the Solar System are already filled with it anyway. The same shielding can protect from both sources. Nuclear fuels are also relatively rare compared to silicon used for solar cells or aluminum/magnesium alloy for concentrating reflectors. It isn't clear what the best energy source for future propulsion will be. :'''Outer Giant Production and Living''' &emsp;We don't expect activities beyond science, exploration, and mining in these regions until technology improves significantly from current levels. Since we can't predict what improvements will be made in the long-term, we will leave what local production and habitation is possible as an open question. =='''10.0 - Interstellar Locations'''== &emsp; &emsp;The last major phase of our program involves interstellar locations. The key difference that warrants a new phase is the extreme distances involved. This breaks the ability to deliver things from the Solar System and communicate with it in a reasonable time. Deveopment of these locations would require high self-sufficiency in transport, enough starting materials, and self-improving systems capable of growth without outside assistance. &emsp;Phase 6 projects are far enough in the future that we can only speculate about them in general terms. We include it mainly as a place-holder and to give direction for future long-term work. We divide it into two sub-phases - the spaces between stars, and those around other star systems. Since you must cross interstellar space before reaching the other systems, logically the sub-phases are in that order. ==='''10.1 - Phase 6A: Interstellar Space Locations'''=== &emsp; :'''Interstellar Features''' &emsp;We define the Interstellar region as starting 100,000 AU from the Sun, where nearby stars and the Milky Way galaxy as a whole begin to contest the Sun's gravity. There is no outer limit for this region beyond whatever travel distances are possible from future technology. Since we don't know what those future technologies will be, for now we will arbitrarily set a boundary of 20 light years from the Sun. &emsp;Probably the most significant feature of this region is that star systems are all in relative motion to each other, with an average velocity of 50 km/s. This is on top of the general rotation of the galaxy at about 225 km/s. As of 2023 there are 131 known '''[https://en.wikipedia.org/wiki/List_of_nearest_stars_and_brown_dwarfs Stars and Brown Dwarfs]''' in the 20 light year "Solar Neighborhood". Given their average velocity, they will travel 20 light years in 120,000 years, so the membership of the neighborhood will change about every 1250 years on average. &emsp;The local interstellar region is very low density gas, at ~0.3 atoms per cubic centimeter, or 1 gram per 564 km cube. That does not include cometary clouds around stars, or wandering objects between them. We know very little about such smaller objects, but assume some exist by similarity to our own Solar System. &emsp;The Interstellar environment between stars is not much different from distant orbit environments in Phase 4F (Section 8.7). Stellar energy is effectively zero, and while stellar radiation is not a factor in this region, cosmic radiation still is. :'''Economic Uses''' &emsp;We don't know enough about material resources and energy sources in this region to propose economic uses. The distance to the Sun detaches any industries from regular trade with the rest of civilization. Science, exploration, and seeding interstellar colonies are possible long-term activities. :'''Interstellar Transport''' &emsp;Interstellar transport can be divided into slow and fast types. The slow type is on the order of stellar velocities (5-500 km/s). An example is a large habitat with large material reserves and fusion power as an energy source. It can subsist on the cometary clouds around stars and unbound objects between them. When it gets close enough to a selected star, it can enter orbit and travel with it. Such habitats would be based on previous space habitats in the Solar System, so it doesn't require a lot of new development. &emsp;Travel times between stars at these speeds would average 3000 years or longer. Such times are long enough that technology changes during the trip are a factor. Trying to reach a specific star doesn't make unless technology had reached a plateau or making improvements in transit was planned for. If the habitat is considered a permanent place to live that happens to be moving to access new resources, speed of travel is less of an issue. &emspFast interstellar puts much more energy into transportation, to reach higher velocities and shorten time to a destination. Possible methods include fusion-powered engines and beamed power using the Sun as a gravitational lens for focus. Rather than a large habitat with a full range of civilized activity, fast interstellar operates more like ships on Earth, with a crew dedicated to reaching a destination and maintaining operations. We don't yet know what interstellar transport methods will prove feasible, if any, and the other space-related technologies available by then, so this is all speculative for now. :'''Interstellar Production''' &emsp;We don't know enough about resources in this region to consider gathering raw materials. So the only production we can plan for now is what they bring with them. If they start with a large reserve, such as a captured comet nucleus, it can be used for supplies, maintenance, and upgrades. ==='''10.2 - Phase 6B: Stellar Locations'''=== &emsp; :'''Stellar System Features''' &emsp;We define stellar regions as those surrounding individual stars, brown dwarfs, or multi-object systems, of which there are 94 within 20 light years. The size of the regions are scaled to the square root of the system mass divided by Sun's mass, times 100,000 AU. This is their region of gravitational dominance and any cometary cloud bound to them. &emsp;Stars and brown dwarfs are bright enough to find with current equipment. In fact 22 star systems within 20 light years can be seen from a dark location on Earth without optical aid. We have basic information about planets and disks around other stars. Their parent stars tell us where to look, and the stars themselves provide data about the planets from Doppler shifts and transits. &emsp;The number of discovered planets at all distances is growing rapidly, from none before 1988 to about 2000 by the end of 2015, and over 5000 by 2023. 59 of them are within 20 light years. Dust and gas in '''[https://en.wikipedia.org/wiki/Circumstellar_disc Disks]''' around younger stars are visible to current telescopes, but none are within 20 light years. Two nearby star systems, epsilon Eridani and Tau Ceti, are known to have longer-lived debris disks. :'''Economic Uses''' &emsp;Due to extreme distance, the only economic uses we see for now are science, exploration, and seeding independent colonies. More study is needed with better telescopes before any attempt to plan travel to these stars. :'''Exostellar Transport''' &emsp;Transport between stars is covered under Phase 6A in the previous section. Travel within a given stellar region would use the same technologies as around the Sun, with modifications for available energy sources. :'''Exostellar Production''' &emsp;As mentioned earlier, we would want to observe the nearby stars in more detail by using the Sun as a giant gravitational lens. Following that would likely be robotic probes to more closely examine whatever is found around these stars. A self-bootstrapping seed factory approach should work at other stars, since the properties of energy and matter are the same everywhere. However the details will depend on what resources are available. </div> gijnrpqpshffzlwrq3poyv96w0sldmg User talk:194.187.32.79 3 296354 4668245 4667956 2026-09-03T12:23:17Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668245 wikitext text/x-wiki {{tmbox|image=none|text=<div class="floatleft" style="margin-bottom: 0"> [[File:School_ip.svg|75px|Educational institution IP address]]</div><span style="font-size: 150%; line-height: 150%">'''Welcome!'''</span> <span style="font-size: 120%">Interested in becoming a regular contributor to Wikipedia? '''[[Special:Userlogin|Create an account!]]'''</span> Your host, '''<code>[http://www.dnstools.com/?count=1&lookup=on&wwwhois=on&arin=on&portNum=80&target={{urlencode:{{{tportal.bishopheber.cheshire.sch.uk}}}}}&submit=Go! tportal.bishopheber.cheshire.sch.uk]</code>''' (''194.187.32.79''), is registered to '''Bishop Heber High School''' and may be shared by multiple users of an educational institution, so you might receive messages on this page that were not intended for you. To have your own [[Wikipedia:User pages|user pages]], keep track of articles you've edited in a [[Help:Watching pages|watchlist]], and have access to [[Wikipedia:Why create an account?|a few other special features]], please consider [[Special:Userlogin|registering an account]]! It's fast and free. ---- <span style="font-size: 85%; line-height: 120%">If you are unable to create an account due to your institution's IP address being blocked, follow [[Wikipedia:Why create an account?#Blocked?|these instructions]]. If you are [[Wikipedia:Autoblock|autoblocked]] repeatedly, contact your network administrator or instructor and request it contact [[Wikimedia Foundation|Wikimedia's]] [[meta:XFF project|XFF project]] about enabling [[X-Forwarded-For]] HTTP headers on its [[proxy server]]s so that blocks will affect only the intended user. Alternatively, you can list this IP address at [[Wikipedia:WikiProject on XFFs]]. [[Wikipedia:Administrators|Administrators]]: review contributions carefully if blocking this IP address or reverting its contributions. If a block is needed, consider a [[Wikipedia:Blocking policy#Setting block options|soft block]] using {{tl|School block}}. In response to vandalism from this IP address, abuse reports may be sent to its network administrator for investigation.</span> ---- {{#if:{{{2|}}}| {{tmbox | type = notice | image = [[File:Stop x nuvola with clock.svg|25px]] | style = border: 1px solid #A00; background: white; margin: auto auto 0.5em auto | textstyle = text-align: center | text = In the event of [[Wikipedia:Vandalism|vandalism]] from this IP address, {{{1|this educational institution's}}} response team has requested that Wikipedia administrators consider a short duration soft block, and have stated that they will respond to reports sent to <b>{{{2}}}</b>, which may lead to disciplinary measures being taken by the educational institution's administration.}} | {{tmbox | type = notice | image = [[File:Stop x nuvola.svg|25px]] | style = border: 1px solid #A00; background: white;{{Text default color}}; margin: auto auto 0.5em auto | textstyle = text-align: center | text = In response to [[Wikipedia:Vandalism|vandalism]], anonymous editing from this particular IP address may be disabled. If you are an unregistered user operating from this address, note that it may be possible for your institution's administration to determine who was making contributions from this address at any given time and [[WP:Abuse response|abuse reports]] may be sent to them for investigation.}} }} }} ==Welcome!== [[Wikibooks:Welcome|Welcome to Wikibooks]]! You do not need to [[WB:LOGIN|log in]] to read or edit books at Wikibooks, but creating an account is quick, free and non-intrusive, requires no personal information, and gives you many benefits, including: * A username of your choice for directly attributing [[Special:Contributions/{{PAGENAME}}|your contributions]]. * A personal user page, a [[WB:TALK|talk page]], and a [[Help:Tracking changes#Watching pages|watchlist]] to monitor pages that interest you. * The ability to [[WB:MOVE|rename]] pages and to [[WB:PREFS|customize]] some aspects of the Wikibooks interface. * People will recognize you as a member of the Wikibooks community, and you will be eligible to [[WB:REVIEW|review]] pages. * Your IP address will be hidden from most users, which may give you a greater sense of security and privacy. We hope that you choose to join our community as a Wikibookian and [[Special:Userlogin|create an account]]. Feel free to ask any questions on my talk page or in the [[Wikibooks:Reading room|Reading room]]. Be sure to sign your talk page comments with four tildes (<nowiki>~~~~</nowiki>). ==Warning== {{tmbox|type=content|text='''Do not add inappropriate content to Wikibooks.'''<br/>This is your first and final warning. Wikibooks does not allow vandalism, personal attacks, or advertisements/spam. See [[WB:WIW]] for a description of what Wikibooks does allow. If you are confused and need help, please ask on the [[WB:AN|Administrator's Noticeboard]]. [[User:Glaisher|Glaisher]] ([[User talk:Glaisher|discuss]] • [[Special:Contributions/Glaisher|contribs]]) 09:37, 22 January 2014 (UTC) }} m71lne78si4tq40ixfib3zntm4n85y6 Trainz/refs/Notations 0 297555 4668270 4585597 2026-09-03T13:09:27Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668270 wikitext text/x-wiki {{FUN-top|sort= Notations|AM&C=1}} ==Trainz Notations== This special glossary page will assist the new reader in getting the gist of Trainz-speak. It is a terse set of other terms that are usually more fully elaborated on in the {{TL|Glossary}} and at times, given topic pages all their own for in depth exposition. ===Keypress notations=== Many Trainz functions are accessed using the mouse or hotkeys. The later change depending upon which module of the software suite is active, though commonality of purpose is preserved from application to application when there is overlap. Mostly there isn't&mdash;the hotkeys use in one Trainz module is different for the same keys in the other Trainz module. In this work, we often use a graphic {{kp|CTRL|C}} - {{kp|CTRL|V}} to convey hot-keying actions. In other cases we may use the old all text [CTRL][C] -[CTRL][V] or [CTRL][SHFT][ESC] menomic system to convey the information, particularly when we want to just remind a user and the graphics mess up the flow of the expository prose. &nbsp; ===Mouse notations=== We've written a special slightly larger graphic (e.g. {{mb|Main Menu}}) to represent mouse button activities. We have no intention of copying actual mouse button icons, which would likely also be illegal. <br> Further mouse actions use the Capitalized mnemonic notation system used in the Trainz manuals since Trainz 0.9 development: {{BullR }}<b>'LMB'</b> for left mouse button and <b>'RMB'</b> for right mouse button{{BullR }}'''LMBh or LMBhold''' and '''RMBh or RMBhold'' for ''click and hold'' activities. {{bullR }}For drop down menus, one will often see '''RMBh+d''' or '''RMBh+drag''' representations; which menuing operations should be familiar to any one comfortable with Windows applications.{{BullR }}At times we will emphasize these by using the keypress notation {{kp|LMB}} or {{kp|RMBh+d}}, etc. as applies.{{BullR }}From the Trainz perspective, both mouse buttons see plenty of action in the GUI's for '''LMBh+d''' is how we operate controls in both DCC and CAB {{TL|Driver}} modes and '''RMBh+d''' operates our viewport from the active camera position{{Efn|RMBh+d won't work with all in-game cameras&mdash;the {{TG|Camera|Tracking Cameras}} ({{kp|3}} key mode) are not user controllable should you be viewing a train from one of those; but like the external camera mode ({{kp|2}}), the {{kp|-}} & {{kp|=}} keys allow sliding the view up or down the length of the train.{{bullR }} Panning and movement behavior under the Free Camera ({{kp|4}} mode) may vary for you depending upon how your Options are set in both Surveyor and Driver.}}, including moving around in the {{TL|Surveyor}} world creation module. <br> ===Standard Abbreviations=== * ''in this book '' &mdash;means may see elsewhere, but this is what is meant here. * ''general shorthand'' &mdash;means seen often on the web forums too. * '''Kc:, Kd:, Ks:''' Keys, usu. Hotkeys respectively in CM, Driver (DVR) or Surveyor (SUR) {{TRS-EdNt|fix=|'''Feel free to put the following table in alphabetical order!'''}} <br> ;This group of abbreviations actually was compiled on the Auran Forums<ref "Source">[http://forums.auran.com/trainz/entry.php?250-Useful-Trainz-abbreviations Shane Turner's Blog: Useful Trainz Abbreviations], accessdate=2016-04-25</ref>, and as its members also contribute here, one might find them in use in our pages too: {{Col-begin}} | width="50%" align="left" valign="top" |<!-- Column 1 here ---> # TRS - Trainz Railway/Railroad Simulator - a number after indicates version (contributed by PerRock) # TS - Trainz Simulator - a number after indicates version (contributed by PerRock) # UTC - Ultimate Trainz Collection (contributed by PerRock) # Pre-SP3 - Original version of Trainz (contributed by PerRock) # TC - Trainz Classics - a number after indicates version (contributed by PerRock) # OP - Opening Post/Opening Poster - general forum abbreviation (contributed by PerRock) # RW/RS/MSTS - Railworks/Rail Simulator/Microsoft Train Simulator - all competitors to Trainz (contributed by PerRock) # FCT - First Class Ticket # SP - Service Pack # Edit: A number after SP indicates version - contributed by PerRock) # CMP - Content Manager Plus # CM - Content Manager (a number found after this indicates the version number) # TDH - Trainz Download Helper (pre-TRS2006 days) # TDP - Trainz Downloader Pro {{efn |This is a tool by Jelte Jansons to assist users downloading using the web-based version of the Download Station. Due to security changes at N3V's end because of Eastern European software piracy episodes, the tool no longer works correctly.}} # CDP - Content Dispatcher Pack{{efn |CDP - Content Dispatcher Pack - these files contain assets that can be installed into Trainz usually by double-clicking the file or by using the Import CDP command in the File menu of Content Manager if using TRS2006 or later.}} # CMPA - Content Manager Plus Archive - these are used to archive assets. # TAD - Trainz Asset Database # TADdaemon - Database transactions manager{{efn |TADdaemon - Database transactions manager was developed as p/o TS2009 tech, and has the role of safeguarding the database from abrupt events, such as a loss of power. It also allows multiple activities, so running CM 2.0 (even multiples with differing filters!) {{BL|'''''and''' Surveyor or Driver'' SAFELY ''at the same time''}}, and even updating, repairing and otherwise changing content that will then shortly afterwards become available in Surveyor is what this resource enables. Early problems with the software were ''eliminated in both TS09 and TS10 in their respective SP4 updates''.}} # DLS - Download Station # DLH - Download Helper # UN - Username # PW - Password # WIP - Work In Progress (contributed by whitepass) # PM - Private Message/Progressive Mesh (contributed by captainkman) # KUID - Koolthingz User ID (contributed by rweber95) # KUID - Koolthingz UNIQUE IDENTIFIER (contributed by fabartus){{efn|IIRC, seen in early Auran Manual s.a. TRS2004 &/or TRS2006's literature.}} # CMTM - Car Movement and Traffic Management (contributed by rweber95) - a number after this indicates version # ARN - Automatic Running Number (contributed by rweber95) # MIN - Multiple Industry New (contributed by rweber95) # BI - Basic Industry (contributed by rweber95) # HOG - Hand of God (contributed by rweber95) # PL - ProtoLARS (contributed by rweber95) | width="50%" align="left" valign="top" |<!-- Column 2 here ---> # LARS - Logistics and Resources System (contributed by rweber95){{efn |LARS - Logistics and Resources System, and also the name of the author of the assets/SYSTEM originally only found on TPR}} # ACS - Active Coupling System (contributed by captainkman) # AWS - Automatic Warning System # TPWS - Train Protection and Warning System # ATLS - Advanced Traffic Light System (contributed by rweber95){{efn |New route builders should check these out. Along with Yarn and Yarnish roads, since these aren't limited by particular track counts, can contain junction divergent tracks, tracks at angles and can be on sloped terrains; using ATLS tech makes many ''difficult to model crossings'' possible and in fact, all crossings somewhat easier to faithfully implement.}} # ASB - Active Signal Box # CCP - Content Creator Plus (contributed by rweber95) # LOD - Level of Detail (contributed by captainkman) # IM - Indexed Mesh (contributed by captainkman) # LM - {{TG|LOD|Level of Detail}} mesh reference, to an ''somename.LM.txt'' text file. # EK3 - East Kentucky 3 (contributed by captainkman) # HUD - Heads Up Display (contributed by captainkman) # TPR - Trainz Pro Routes (contributed by captainkman) - address is http://www.trainzproroutes.org/ # USLW - U.S. Locomotive Works (contributed by captainkman) -address is http://uslw.net/ # JR - Jointed Rail (contributed by captainkman) - address is http://jointedrail.com/. # DLC - Downloadable Content (Auran/N3V payware content e.g. Blue Comet,Duchess,SnC) (contributed by captainkman) # SnC/S&C - Settle and Carlisle - a DLC pack (contributed by captainkman) # CoC - Code of Conduct (contributed by captainkman) # SPAD - Signal Passed At Danger (contributed by airtime) # Hardware TL/Hardware T&L - Hardware Transform and Lighting # DEM - Digital Elevation Map/Model # IWBNI - It would be nice if (contributed by mjolnir) # OTOH - On the other hand (contributed by mjolnir) # FWIW - For what it's worth (contributed by mjolnir) # AFAIK - As far as I know (contributed by maruffijd) # MP - Multiplayer # FPS - Frames per second # TFYHW - Thanks for your hard work (contributed by jjanmarine3) # TNI - Trainz Native Interface (contributed by BuilderBob) # IIRC - If I Remember Correctly (contributed by pcas1986) # EDR - Extended database repair (contributed by Bhorton) # UAD - Updating Asset Database (contributed by Bhorton) # DRM - Digital Rights Management {{Col-end}} ==Terms and Acronyms== Many Trainz Basic terms and notations are duplicated in the glossary as well as here, but the new Trainzer will find we've reserved longer, fuller explanations to exposition in the glossary entry. If this page doesn't satisfy you in getting the gist of a topic page, check the same term in the glossary, which might also lead to a elementary or introduction topic page on the subject. {{-}} <!-- **************** Begin the outer table to fix widths so all tables render the same width... ************** ---> {| class="Pretty-table" style={{PTstyle|MW=99%|W=auto|P=2px|B=none|F=Times|S=8pt}} |- | ===Aa_to_Cz=== {{anchor|A|B|\|\cache|\Cache|.\backup|.trash|backup_subfolder|backup_folders|\Cache\bookmarks}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;'''.\backup'''&nbsp;<br/ >&nbsp;'''.\trash'''&nbsp; |&nbsp;These names do the same thing &mdash; temporary time dated storage of altered files.&nbsp; |&nbsp;The trash subfolder is a sister-folder of the .\cache folder in the root directory; N3V renamed it in the {{TL|TS12|TS12 releases}} {{BL|'.\backup'}}. Introduced as a feature in TS2009, wherein each ''retains 'nn' date-coded backups subfolders'' populated from editing actions. Each holds asset subfolders, just as when they were opened for editing. The Trainz options menu(s) allow the user to specify ''how many individual edit days' sub-subfolders'' are retained in the .\trash or .\backup subfolders. {{anchor|root_folder|root\|r|R}} |- |&nbsp;'''Root folder&nbsp;'''<br />&nbsp;'''{{BL|.\''nameish...''}}''' pathspecs||&nbsp;Directory shorthand 'relative' reference; most often meaning the {{here|root_folder}} where the install is loaded into.&nbsp;||The ..\ shorthand is DOS & Windows meaning the ''directory one up from here'' (or whatever pathspec or filespec are specified as) behind the slash. If you understand {{BL|each '\' ('\name')}} as meaning ''one level down'' the '.\name' notation means here in the root... wherever this 'local root' lives in the hard disk hierarchy. {{anchor|A|B|\|\cache|\Cache|Cache\bookmarks|\Cache\bookmarks}} |- |&nbsp;'''\cache''';&nbsp;<br />&nbsp;'''\cache\bookmarks'''&nbsp; |colspan="2"|&nbsp;'''Trainz cache subfolder'''&mdash;a local root folder:&nbsp; &nbsp;The cache subfolders hold a collection of busy working semi-temporary utility folders wherein Trainz runtime modules temporarily or semipermanently keeps reference files for further action. The contents in each subfolder change often, and periodically may get purged.<br />&nbsp;''{{BL|Semi-Permanent}}'' files are for example, saved in the '''.\libraries sub-subfolder''', where user provided scripts are cached for quick lookup and loading sans compression, or the .\bookmarks, .\sessions, .\water or .\thumbnails folders; all of which tend to grow with time and activity. <br />&nbsp;''{{BL|Less permanent}}'' file caches are for example ''the .\internet and .\sessions {{BL|permanent subfolders}}''... where the date-expiring ever changing roster of contents files like downloaded {{TL|.cdp file}}s reside for a while in the sister-subfolder where saved Driver sessions are stored until deleted.<br/ > Another date expiring folder is the ..\cache sister-folder, the ..\trash subdirectory which gets backup copies for those {{BL|Uh oh, Oopsie}} edit moments. <br />&nbsp;Before TS09/TS10 introduced the {{BL|'Install Root'\UserData folder}} hierarchy, including the modern \cache folder, all Trainz 1.0 through TRS-era (TC3) cache folders lived in the same root folder as the {{TL|Launcher}} program and the {{BL|\bin and \settings}} sister-subfolders.{{anchor |bmk_file|.bmk_file|BMK|bookmarks|bookmark}} |- |&nbsp;bookmarks<br />&nbsp;.BMK file&nbsp;<br/> |<br />&nbsp;Main page: [[Trainz/file_types_by_extensions#BMK_file|BMK file type]] |&nbsp;Link is to extensive discussion in the 'BMK files' section in {{TL|file_types_by_extensions}} page. (Full path: [[Trainz/file_types_by_extensions#BMK_file]])&nbsp;<br /> <!-- SKIPPING FOUR |- |&nbsp;''' '''&nbsp;||&nbsp; 1 &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; 2 &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; 3 &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; 4 &nbsp;||&nbsp; --->{{anchor|ALCO|AlCo}} |- |&nbsp;'''ALCO'''&nbsp;<br/ >&nbsp;'''AlCo'''&nbsp;<br/ >&nbsp;'''Alco'''&nbsp; |colspan="2"|[[File:Alco-logo.png|left|50px|Alco-logo]]&nbsp; &nbsp;'''ALCO'''&nbsp;'''{{wp|American Locomotive Company}}''' &nbsp;A historic conglomerate with earliest member company's founding (1848) in {{wp|Schenectady, NY}} as the {{wp|Schenectady Locomotive Works}} (SLW) which primarily made steam locomotives, and secondarily {{here|rolling stock}}. SLW later spearheaded the merger of the multiple well established regional companies in 1901 (See : [[:commons:Category:ALCO locomotives|member images etc.]]) which grew larger and more successful over the years as it absorbed various regional independent {{w|steam engine}} {{w|manufactur}}ers, like itself&mdash;all servicing rail transport industry as the traincar manufacturing supportive needs of the many {{here|short line railroad}}s of the golden age of {{w|Rail_transportation_in_the_United_States|United States}} {{w|Rail Transport}}. With it's geographically decentralized locations and ability to combine engineering design activities to custom or semi-custom specifications, AlCo became a very popular provider of popular steam locomotives and over the decades invented or improved many components and standards adopted world-wide. AlCo produced many designs as it grew, of which many have been subsequently used as prototypes for digital and physical Model Railroading models. A victim of deiselization, unlike its few other principal competitors like Philadelphia's {{here|Baldwin Locomotive Works}} the company didn't archive designs with a University research library and its blueprints were only sporadically kept, so the variations of prototypes available to the modeling world vastly under represents the majority of its historic Locomotives and traincars ({{here|rolling stock}}).{{anchor|API}} |- |&nbsp;'''API'''&nbsp;||&nbsp;Application Program Interface<br />&nbsp;See {{wp|Application_programming_interface#API_design|API on Wikipedia}} |Several Trainz modes use specific input screens, API's to control things. The {{TL|Options menu}} and the {{TL|Session editor}} are the two most important. The {{TL|CM Options menu}} ({{kp|Alt|F7}}) is a third, as are the run-time GUI options menus for adjusting mouse modes, the environment, and the graphics settings in the {{TL|Surveyor}} ({{kp|Ctrl|O}}) and {{TL|Driver}} {{TL|Trainz modules}}. &nbsp; {{Anchor|AssetX|assetX|Asset source folder|asset source folder|asset folder|Asset folder|Asset Folder}} |- |&nbsp;'''Asset folder'''<br />&nbsp;'''Edit folder'''<br />&nbsp;Asset's edit folder&nbsp;<br />&nbsp;'''Opened for edit folder'''&nbsp; |colspan=2|&nbsp;An asset data folder extracted from the data base by the Content Manager. Center Stage during any kind of asset editing &nbsp;the ''''' '{{BL|Opened for edit folder}}}' ''''' is generally presented with the combination of parts files ({{BL|textures, text, thumbs, meshes, and other virtual object components}}), plus their controlling {{TL|Config file}} with the unique {{TL|KUID}} identifier and operations and capabilities characterizing KIND defines. (See below joke too) <br>A config with parts but no kuid nor kind is meaningless. Adding the kind tells Trainz how to process the collection of data, taking it from junk files to an valuable orchestrated possession. Add the kuid, and now the rest of trainz have a handle to manipulate it and make it manifest in the virtual universe, while we humans can keep track of the aggregate with said unique handle. Change a username, and nothing operates differently but alphabetic lookups. Change a kuid, or have one missing, and there is a loss of function, even upto breakage of the run time simulation. |- |&nbsp;'''Asset source folder'''&nbsp; |colspan=2|&nbsp;The Start of every asset, assembly required outside Trainz in an offline operating system folder by the content creator.<br >&nbsp;1) Read the above Asset Folder.&nbsp;2) Every {{TR|kind}} and its defining legal 'value' sits in a {{TA|config file}}{{efn |The rough config, with its assigned {{TL|KUID}}, possibly already stubbed in or allocated (Planned? By some, to a scheme by type groups). }} which needs a home. ''That Home is the {{BL|'''asset source folder'''}}, in which the content creator assembles all the parts making up that specific implementation of his vision.'' Generally, even simple assets consist of a number of files&mdash;the more complicated the model, the more files there will be. Each digital model is a collective design incorporating multiple component pieces'', '''{{BL|all taken together and integrated}}''', aimed to simulate a <u>prototype</u>&mdash;make a virtual model, often with animated or interactive 'abilities' mirroring the prototype modeled.'' <br /> The term 'Source folder' here is meant literally as the archive of the creation, kept safe by the Content Creator somewhere outside the compressed existence inside a Trainz data base. That place cannot be the .\editing folder because when an asset is committed,{{efn |''''''committed'''''' is the traditional term, the software house that developed TANE for some reason denoted this as ''''submitted'''', and stole the hotkey for opening a asset for edit in explorer as the submittal hotkey! An alternative theory is the TANE & TRS19 development mimic the MAC version of TS12 because the N3V chief programmer is a big Mac fan. }} the edit folder is deleted, were it opened for editing.{{efn|One can 'read as a new asset input source' an altered asset, such as when promoting a kuid to a kuid2...:1 form. Since the folder is not in the edit list, it will be relatively safe, but it's best named differently than its asset-filename or username tag values. The safe play is to keep a second work-in-progress folder such as '''..\edithold'''&mdash;a new sister-folder for \editing!}}<br > When ready, the Content Creator {{here|drags & drops}} the source folder over onto Content Manager, or uses the menu to input from the directory where he keeps the source materials. From there, it is usually in compressed form, as {{TA|cdp file}}s, or within a Trainz data base ({{TL|TS09}}, {{TL|TS10}}, {{TL|TS12}}, {{TL|TANE}}, or now, the latest, {{TL|TRS19}}.<br/> |- |&nbsp;'''{{TL|AssetX}}'''&nbsp;||&nbsp;3rd Party Software Tool&nbsp;||&nbsp;Freeware asset fixing & updating tool written by Andi06, with How-To help by PCAS1986 (Paul Cass) and which can be used with Ian Woodmore's AssetX fixer {{TA|TARDIS scripts}} to update and fix assets in conjunction with {{TA|PEVtools}} freeware.{{clear}} {{TTip|{{BL|'''Strongly''' NOT Recommend for NEW TRAINZER's}} who have enough learning curves to surmount. Wait until you've familiarized yourself with Trainz data models by manually fixing 250-500 asset problems before tackling the learning curve on this one! After that, it's great for updating assets and making sure they're in compliance with TS09-TS12 asset validation needs... which are pretty much good for TANE as well.}}{{clear}} |- |&nbsp;'''baggage car'''&nbsp;||&nbsp; &nbsp;||&nbsp;when rails were king, luggage and freight carrying cars. <!--- skip a few |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; ---> {{anchor|built-in |built-in_asset|BI|built-ins|built-in assets|BIs|Built-in |Built-In}} |- |&nbsp;'''Built-in asset'''<br/>&nbsp; or '''BI asset'''<br />&nbsp; or ''''BI'''' &nbsp; |&nbsp;for '''Built-Ins'''&nbsp;<br/>||&nbsp;All the '''built-in items''' of your Trainz retail release version. Before-TANE versions these CAB(inet) files were located in {{TL|JA files}} which are configured for rapid upload into the game and tightly organized. Post-TANE security measures adopted a new file type, the .tzarc files which include improved built-in data security. {{bullR }} Certain items, such as thumbnails are often stripped from the JA's (when they aren't using a texture.txt file referencing them) which are mandatory for uploading an asset to the DLS, whereas other ''''_art folder'''' thumbnails are used in different Trainz modules and menus, on the DLS web pages and if the later, are sometimes downloaded to the cache for views in CM when that asset is collected.{{bullR }} Consequently, some such thumbnails images are not often part of any cloned asset, unless it referenced the 240x180 px thumb by using a {{TR|x|texture.txt file}}<ref>Explanation to Fabartus and other's in ''user group {{TL|Yesterdayz-Trainz}}' ''from former version manager James Moody by email during autumn of 2014</ref>, in which case it is incorporated into the JA files of a new version, just as the _art folder images should be.{{efn|This explains why so many BI assets lack images in the CM Details Pane... they were directly referenced, so stripped, versus those indirectly referenced by {{TR|X|texture.txt file}}s.}} <!-- ... |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; --->{{anchor|C|c|cab|CAB}} |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|CAB file|CAB files|carriage}} |- |&nbsp;'''CAB file'''&nbsp;||&nbsp;'''C'''ompressed '''A'''sset '''B'''ase<br/>&nbsp;or ''''CABinet files''''&nbsp;||&nbsp;CAB files are a software {{wp|term of art}} for a library of files that may be and usually are options in the install or configuration of the application. Microsoft Windows and many other applications allow user customization by adding or deleting components, such as Microsoft Media Player, accessibility assets like magnifiers, internationalization customizations ''for languages'', audio text readers for the hearing impaired, and even system utilities like disk maintenance applications. * '''Trainz CAB file analog is the {{TN|JA files}}''', which contain all the {{TN|installs}}' base assets distributed with the specific retail release. Unlike the offline Windows application CAB files, Trainz JA files are optimized for run-time use and fast loading, as they form the core of the releases data base containing all the {{TN|built-in}} content.{{anchor |camera|Camera|cameras|Cameras|camera mode |camera view}} |- |&nbsp;'''camera'''&nbsp;<br />'''Camera mode'''||&nbsp;In-game viewpoints<br/>or Camera modes&nbsp;||&nbsp;Cameras are Trainz-speak for viewpoint. Since Trainz UTC, 'In-World' standard camera's have four modes in {{TL|Driver}} activated by the {{TG|hotkey}}s: {{kp|1}}, {{kp|2}}, {{kp|3}}, {{kp|4}}] but just three in {{TL|Surveyor}}, normal edit view and two by hotkeys: walking view (close-up) [{{kp|ALT|Y}}] and {{BL|''fly mode''}} [{{kp|ALT|U}}]&mdash; where like the main edit camera, both aren't tied to specific object anchors, so are more like Driver's Free or Roaming Camera mode [hotkey {{kp|4}}]).<br />related: ''''-freeintcam'''' a trainzoptions.txt (ini) file command line allowing users to move the internal CAB cameras around; slide them forward or back and slew them left or right whilst the mouse controls up-down (tilt) and rotation (panning). This allows a Driver to position screen-views more comfortably for his/her driving style. |- |&nbsp;'''carriage'''&nbsp;||&nbsp; &nbsp;||&nbsp;a British cultural term for a type of popular passenger traincar often prototyped in modeling - usu. modeling a specific manufacturer or {{TG|Operating Railroad}}'s {{TG|livery}}. |- |&nbsp;'''CC''' or<br/>&nbsp;'''CC's'''||&nbsp;{{TL|Content Creator}}s&nbsp;||&nbsp;Those wonderful people that freely give a great deal of time and painstaking devotion to providing digital models for Trainz.<br />&nbsp;These are: {{TL|Route builder}}s, {{TL|Asset maker}}s, {{TL|Scripting specialists}} and {{TL|Session writer}}s&mdash;which activities take a big chunk of time and they ought be appreciated for fueling Trainz for over a decade now. {{anchor |Chump file|Chump files|chump file|chump files|.chump|.chump_file|cdp|.cdp file|cdp_file|cdp file}} |- |&nbsp;'''chump file'''<br/>'''.chump files'''&nbsp;||&nbsp;Compressed config.txt + data file(s)&nbsp;||&nbsp;Looking within data folders holding installed (i.e. {{here|committed}}) assets (Under ..\userdata\), one can observe that individual data files (such as {{TL|mesh file}}s or {{TL|texture file}}s) processed and rolled into a fast loading binary file format containing most all of the individual files one can examine in an asset opened for edit. * Unsurprisingly, {{TR|KD|kind profile}} (sessions), {{TR|KD|kind activity}} (scenarios, now obsolete), and {{TR|K|map}}s (routes) have additional compressed data files. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; {{anchor|commit|committed|committing|auto-commit|auto-committed|auto-committing}} |- |&nbsp;'''commit'''&nbsp;<br/>&nbsp;'''commit'''&nbsp; |&nbsp;CM/CMP action on asset data |{{TL|Content Manager}} action of adding content to the data base&nbsp;<br/>&nbsp;The user commanded ({{kp|CTRL|M}}) action of adding an asset open for edit or new asset in the same raw data forms into the data base. If a new asset, the asset would usually be {{here|imported}} and committed in one go. Similarly, DLS downloads and loading CDP files are usually auto-committed. There is a check box in the Launcher > {{mb|Options}} menu's ''Miscellaneous Tab'' that can be set or not to automatically validate and commit CDP assets.{{TTip|pre=Note|If you are downloading a route or session asset, you'll be dragging in hundreds of dependent assets, so best make sure this box is checked for big downloads!}} Importing defaults to auto-committing, but in some versions the same check box controls whether imports are auto-committed too. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|ContentManager|Content Manager|CM|CMP}} |- |&nbsp;'''CM''' or '''CMP'''&nbsp; |&nbsp;{{TL|Content Manager}} or<br/>&nbsp;{{TL|CMP|Content Manager Plus}}||The Trainz utility '''data base manager''': Trainz Windows applications to download, upload, archive, sort, and manipulate assets, including cloning and editing. {{TL|CMP}} became ''''CM 2.0'''' in TRS2009, '''CM 3.2''' in TS10 and then '''CM 3.3''' later in both's 4th service pack - since that TS09/TS10-SP4 upgrade, all CMs display the new asset {{TBS|Trainz-build}} version (v#.#) in the title bar. Hence, TS12-SP1 will display '''CM 3.7''', etcetera. |- |&nbsp;'''CMP'''&nbsp;||&nbsp;Content Manager Plus &nbsp;||Older initial all in one CM Windows application introduced in v1.5 and up versions of {{TL|TRS2006}} and the 3 Trainz Classics. Both Auran and N3V games are a prone to hyperbole in sales names and literature. Trainz Classics (mainly a skin change) was heralded as a 'New Era' in Trainz... which may shock {{TL|TANE}} users a bit since they were TRS2006 with reskins and few improvements. |- |&nbsp;'''CSAR'''&nbsp;||&nbsp;Computing &nbsp;term||&nbsp;'''Conditional Search and Replace'''. See {{TG|S|SAR}} in the glossary for details and distinctions. |} ===Da_to_Fz=== {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |Da... | |{{anchor|depreciate|depreciated|diff|comp|D|file_compare|file_comparison}} |- |&nbsp;'''depreciated'''&nbsp;||&nbsp;especially ''depreciated tag or keyword'' &nbsp;||&nbsp;A depreciated practice or definition is one set aside and abandoned in future formulations. N3V's programmer's most often mis-characterize such swerves in acceptable practice as "'''obsolete'''"&mdash;''which itself should more correctly be termed as obsolescent (equivalent to depreciated), for both are still valid for older content definitions. {{ bullR}}To be obsolete, the practice or keyword would NEVER have correct scope or place; a subtle but important distinction.'' {{ bullR}}{{TA|Fixing Assets|One can fix many an asset successfully}} by satisfying now obsolescent standards (perhaps by gradually even successively incrementing the {{TBS|trainz-build}} and addressing and repairing new warnings and errors) to a lower than current trainz-build your installed CM can translate. In contrast, one can arrest such successive fix ups at a lower than current version trainz-build and locally have a perfectly good asset. It just can't be uploaded to the DLS which has input screening which enforces stricter standards than your current {{TL|Content Manager}}.{{anchor|D|d|diff|difference|file_comparison|Kdiff3}} |- |&nbsp;'''diff'''&nbsp;& '''difference'''<br />'''comparison'''&nbsp;'''file compare'''&nbsp;<br />'''file comparison'''<br />'''comp''' ||re:&nbsp;'''diff''' in phrases:<br />''''taking a diff'''',<br /> 'the diff showed', <br />'no diff' &nbsp; |&nbsp;'''diff'''&nbsp;'''Diff''' is a (type of) workhorse utility program found on many computing platforms for '''Comparing''' two or three data sets '''for diff'''erences. One of the early progenitors was literally DIFF, so the tool name has become synonymous with the action of looking for '''differences'''.<br /> ---- &nbsp;Examining the differences between two folders or files using a comparison App like (Freeware) Kdiff3.exe (works well in all Windows OS versions) which can compare and illustrate variations between files or folders. '''Diff''' is the common computer jargon because there is a Unix, VAX, DEC10, and there was a 3rd-party MS-DOS utility of the same name. Some Diff utilities only compare pairs of files, others directories, and a third class, either.{{anchor |drag_and_drop|drag}} |- |&nbsp;'''drag'''<br />&nbsp;'''drag and drop'''<br />&nbsp;''(drag & drop)''&nbsp;||&nbsp;Mouse operations&nbsp;||&nbsp;The windows operation of grabbing a data file or folder by right clicking on it and holding the mouse button while moving it over another application window or folder to transfer its contents to where it is released.{{anchor |E|e|EDR|extended}} |- |&nbsp;'''EDR'''&nbsp; |colspan=2|&nbsp;<big><u>'''Extended Database Repair'''</u></big> in TS09-onwards&nbsp;<br />&nbsp;Selecting''' EDR''' from the CM {{kp|ALT|F7}} hotkey or options menu launches the big brother of the {{TN|Q|QDR}}, which forces a ''full thorough database self-audit'', including re-error-checking installed assets, and records like ..UserData\Originals, backups and etcetera. : In the TS simulators, An even more thorough EDR mode is launchable using the TrainzUtil.exe program in the \Bin folder. If you loose power or your computer does an auto-update with CM running, just go to this method: (CM may hang, so avoid the grief.) :: 1) Open a CMD window :: 2) Navigate to the \Bin folder where your Trainz release is installed. :: 3) Type the Command: :::<big><code>TrainzUtil Repairdatabase</code></big> : The command window will tell you it will take quite a while to run. Monitoring your system CPU usage during it, will show high activity, up to 98% at times. Windows opened off screen will proliferate as TrainzUtil spawns child processes. : It's Okay to go off an do something else, but avoid demanding Apps and Video heavy games (Or other high demand streaming). This is a good time to watch TV, take a walk, or read a book. * It takes quite a while as a result on older computers, so if tempted, make sure you have no plans for the computer ''for several hours''; depending upon the amount of installed content, and the computer's overall system speed. On a fairly good quad-processor computer system 40-50,000 added assets runs in about half an hour in TS12, 40 minutes in TS10-SP4 (Similar content, but not the same counts, but close though) and a bit longer in TS09-SP4 for each of three principle install running during a double power outage. BOTH got new database rebuilds, so the times were consistent. &nbsp; * Comparatively, the EDR takes a much greater time than a QDR which can often run inside 5-7 minutes, even with no added content on a system, for it not only rebuilds the assets.tdx index file but also rechecks validity of content, looking for faults. That is an EDR basically opens each asset file folder, validates it for errors, then re-archives it. It is not only necessary for catching corrupted data, s.a. might occur by a power failure, but also for reintegrating code containing assets after a large upgrade, because such will almost always contain a software library change which must be tested against the asset in storage. ;Tips Best run overnight, verify your scheduler apps don't interrupt and that your scanning security utilities are disabled--the EDR is internal, and no scanning of files is in any ways useful, but just slow things down stealing resources and processor cycles from Trainz--which will be pushing your processor to the limits!. {{bullR }} In particular, disable anti-virus and Mal-ware checking and especially disable any auto updates which might reboot the system with disastrous results to Trainz. * ''['''Ed-note:''' Disabling internet connectivity has been reported to speed the process considerably.] ''{{TRS-check}} |- |&nbsp;'''EMD'''&nbsp; |colspan="2"|&nbsp;[[File:EMD builder's plate.jpg|left|180px]] <br />&nbsp;Like AlCo and Baldwin in steam propulsion, GM's Electro-Motive Division of La Grange, Illinois became one of the biggest names in diesel powered locomotion with roots extending back to the ''{{w|Electro-Motive_Diesel#Early_years|Electro-Motive Engineering Corporation}} in 1920s, soon renamed the Electro-Motive Company (EMC).'' General Motors acquired first the diesel engine supplier, then EMC in a product diversification move in 1930. Using GM's deep pockets and research divisions, EMC operating jointly with GM research began turning out one major advance in railroad propulsion after another, and in 1941 during an in-house reorganization separating non-locomotive engine production from the railroad diesels, EMC and GM legally established the Electro-Motive Division (EMD), bringing research, development, production, marketing, training, and service under one umbrella and management team. Thereafter, building on EMC superb reputation, EMD continued as a popular brand of locomotives for decades - with only one real North American competitor ALCO-GE. GM sold the division to two US equity groups on April 4, 2005 - the new company was incorporated as Electro-Motive Diesel, Inc., thus retaining the famous "EMD" initials. Regardless of technical ownership, since the very beginning of utilizing practical {{w|diesel engine}}s as the prime mover - EMD was almost always a company pushing its competitors to keep up - consequently, diesel-electric locomotives manufactured by {{w|Electro-Motive_Diesel|General Motors Electromotor Division}} are often prototyped in Trainz. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''enumerated'''&nbsp;||&nbsp;strictly<br/>defined&nbsp;||&nbsp;Enumerated types strictly define legal values, and proscribe undefinable values, which generate an error. {{TR|T|category-region}} and {{TBS|category-class}}es are data fields which must satisfy enumerated values checks. Boolean values must only be a 1 or 0, or similarly generate errors. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;{{anchor |F|f|filename extension|extension}} |- |&nbsp;'''file extension'''&nbsp;||&nbsp;Computing <br/>&nbsp;{{here|OS}} terminology&nbsp;||&nbsp;Historically, Windows files were limited by storage space on early PC-computers Disk Operating System storage schemes to a total of eleven characters, three, ''the extension'' being reserved to class the type of data file, the operating system providing a period between the first eight characters (the NAME) and the three of the extension. This limitation is no longer with us, but most file types still keep their extensions very short. Two exceptions are the Trainz '''.chump''' and '''.texture''' extensions used for compressed and combined data elements.{{anchor |F|f|filename|filespec|filenamespec}} |- |&nbsp;'''filename''' or&nbsp;<br />&nbsp;'''filespec''' or&nbsp;<br />&nbsp;'''filenamespec'''&nbsp;||&nbsp;Computing <br/>&nbsp;{{here|OS}} terminology&nbsp;<br/>&nbsp;Computing Jargon |&nbsp;Operating system compatible name, sometimes meaning in a context can imply with an included pathspec prefix. These are ''references to the folders hierarchy in Windows''. &nbsp;For example: {{BL|C:\TS12\UserData\editing\$screenshot$.jpg}} has a {{here|pathspec}}, and a filename+{{here|extension}} {{BL|and when both are combined}} together as one {{here|string}} with meaning, it may called a {{BL|'filespec' or 'filenamespec'}}. In these, note the 'Spec' implies the path or pathspec is part of the string. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''{{TL|era code}}'''&nbsp;||&nbsp;enumerated type in<br/>the {{TBS}} &nbsp;||&nbsp;Era codes are decades expressed as a full four digit year ending with zero then terminated by a '''small 's' character.''' Multiple era codes may be joined to create a legal value for the config.txt files/TBS's {{TBS|category-era tag}}. Trainz will complain if a category-era code is not defined, though if one clones a built-in Auran authored item, most will not usually have that nor several other mandatory tags defined. {{anchor|fault|faults|fixing faults|error fixing}} |- |&nbsp;'''Error Fixing'''&nbsp;<br/>&nbsp;'''Fault Fixing'''&nbsp; |&nbsp;See {{TA|Fixing Assets}}<br/>&nbsp;(we have your back!) |&nbsp;Process, usually of running {{TA|PEVtools}} to update some extractable data types from the data base and upgrade an asset with concurrent edits to the assets component files; and most usually their {{TA|config.txt files}}, which are often the only file needing corrections. ''Most Trainz faults consist of updating from older conventions to newer conventions and require simple text file edits and a bit of knowledge we are providing here in this Wikibook.'' |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |}<!-- careful! Table end ---> ===Ga_to_Hz=== {{anchor|G|g|H|h}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''{{TL|GameScript}}'''&nbsp;||&nbsp;Trainz programming language enabling interactive assets&nbsp;||&nbsp;{{TL|GameScript}} is a {{wp|C (programming language)|C-like computer language}} which generate '''{{TL|file types|s=GS_files|p=GS files}}'''&mdash; Gamescript source files for inclusion in assets and the game's script libraries. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|GUI}} |- |&nbsp;'''{{wp|Graphical user interface|GUI}}'''&nbsp;||&nbsp;Jargon:'' 'Graphical User Interface'&nbsp;''||&nbsp;The three 'run-time' module we can view the Trainz virtual world or models within. They are {{TL|Driver}}, {{TL|Railyard}}, and {{TL|Surveyor}}. ({{TL|Content Manager}} is a {{wp|Windows application}}, as some would argue are the {{TL|Loader}}, {{TL|Launcher}}, and {{TL|Main Menu}}s screens.) Technically all are GUIs, but control is either Trainz or Windows, so there is a teensy-tiny distinction. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|keyword}} |- |&nbsp;'''{{wp|Reserved word|keyword}}'''&nbsp;||&nbsp;computing term&nbsp;||&nbsp;A 'Reserved word' meaning {{TN|enumerated}} and given special scope and legal use. {{TA|containers}}, {{TL|kinds}} and {{TL|tags}} are all keyword enumerated types which signify particular handling when processing their data value fields.{{anchor| Hotfix | hotfix| hotfixes|minor software upgrade|patch|patches | bug fix|bugs}} |- |&nbsp;'''hotfix'''&nbsp;<br />&nbsp;'''patch'''&nbsp;<br />&nbsp;'''bug fix'''&nbsp;||&nbsp;'''minor software upgrades:'''&nbsp;<br />N3V's use for Trainz's lesser (more minor) software upgrades&nbsp;||&nbsp;Major software upgrades usually affect the data or conversion of the data in the {{TN|TAD}} (data base), and N3V uses {{TN|service pack}} releases{{efn|Many service pack upgrades have been known to take over 16 hours on slower computers. Only add a SP when you know you won't want to slow the computer down, and shut down most all other processes as well!}} to accomplish such changes. N3V also publishes lesser upgrades using both '''patch''' and '''hotfix''' terms for the release's upgrades. Generally, N3V's patches are ''very targeted'' on fixing specific bugs, while hotfixes tweak and improve some less urgent fixes and contain an accumulation of several aspects of game function{{efn | examples of {{TN|hotfixes}} combining several fixes and adjustments of minor bugs:{{bullR }} Over exuberant dig holes, plus a menu fix, plus minor mode change, plus tree auto-height adjustment, plus rendering of joined map {{TN|base board}}s, and such like.}} |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|Hotkey|Hotkeys}} |- |&nbsp;'''Hotkeys'''<br/>Abbrv: HKey &nbsp; |{{TL|HKeys-CM}}<br />{{TR|R|HKeys-DVR}}<br />{{TR|R|HKeys-SUR}}<br />{{TR|R|HKeys-WIN}}&nbsp; |&nbsp;A Hotkey in computing is also known as a {{wp|keyboard shortcut}}, and are usually a Key-press combination where multiple keys are pressed at the same moment, '''or''' a '''Operations key''' that is built into the software and changes or accesses some other mode. One 'almost' universal sequence {{kp|ALT|F|something}} in Windows Apps will bring you to the {{kp|'''<u>F</u>'''ile}} drop down menu to '''<u>S</u>'''ave..., ''save '''<u>A</u>'''s''..., '''<u>O</u>'''pen, '''etcetera'''. So Hokey gives '''&rarr;''' FILES (a ''mode change'', launch mode entry to file operations). Another two well used: {{kp|WIN|E}} - Opens Windows Explorer; {{kp|ESC}} suspends browser page build operationa... ''canceling loading that link you really didn't mean to click''. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |} ===Ia_to_Iz=== {{anchor|i|I}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|image|Image|image_file}} |- |&nbsp;'''image file '''&nbsp;||&nbsp; graphics files&nbsp;<br />&nbsp;''Main:'' {{TL|file types}}&nbsp; |&nbsp;data in image form, Trainz traditionally used {{wp|.bmp|BMP}}, {{wp|.jpg|JPG}}, {{wp|.tga|TGA}}, and {{wp|.gif|GIF}} image file types. With the advent of {{TL|TANE}} and {{TL|TRS19}} PNG files and a couple of other rarer types became acceptable legal types in new assets. For others, see {{TL|file types}}.{{anchor|indexed mesh|im|im file|.im file|Indexed mesh|IM|IM file|.IM file}} |- |&nbsp;'''.im'''&nbsp;<br/>&nbsp;'''im file'''&nbsp;<br/>&nbsp;'''.im file'''&nbsp; |&nbsp;''indexed mesh''&nbsp;||&nbsp;indexed meshes are the basis technology produced by 3ds Max, gmax, and blender 3D graphics suites rendered by trainz as visual (and invisible) objects acted upon or just displayed by the Trainz software suite. The IM files replaced the older {{TG|.pm file}} (Progressive Mesh) technology as preferred as early as within the early TRS2004 era.{{ anchor|import|importing|imported asset|imported content}} |- |&nbsp;'''import'''&nbsp;<br/>&nbsp;'''imported asset'''&nbsp;<br/>&nbsp;'''importing content'''&nbsp; |&nbsp;'''importing content'''&nbsp;||&nbsp;Trainz has three modes of adding new assets to the data base. Importing means using the CM menu to access a file folder with an asset or many assets which are then read, validated, and committed. Alternatively, Drag and Drop such a folder onto CM will import the file, which applies to {{TL|CDP file}}s as well. {{TTip|{{Here|ZIP file}}s must be uncompressed first before importing.}} |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|install|installation|installations|installs|Install|Installation|Installations|Installs}} |- |&nbsp;'''install<br />&nbsp; installation '''&nbsp;||&nbsp; Any Trainz<br/>code build <br/>&nbsp;collection||&nbsp;Specifically meaning, ''Each or 'any specific' Trainz software suite version on a specific particular computer and its hard drives characterized by a stand-alone independence with it's data and software organized within its own unshared {{TN|R|local root folder}}''{{efn| The {{TL|TANE}} and {{TL|TRS19}} releases separate data folders from software code directories (folders) &mdash; an much asked for feature by the user community. The separation means each software suite segment can access the same database content, not just port it over into a new folder &mdash; effectively just copying most of it. Asset auto-changes because of a new software need or feature are rare, and small in number, making it easier to segregate those assets updated in the software folders and leaving the predecessor database unscathed... a new, more polite and respectful departure for the programmers, but it saves a lot of disk space for Trainzers running many installs, for whatever reasons. (Compatibility checks, archives based on a version, or a favorite route and session etc.) }}{{anchor|instance|instances}}. This author has a version for each hotfix and Service Pack of each Retail release version since TS09-SP1 and each are an 'install' since SP2, SP3 and SP4 all differ. Repeat that status as needed for TS10 and TS12, and just two releases each of the TC's, TRS2006, TRS2004 and Trainz 1.3 & Trainz UTC! |- |&nbsp;'''instance or<br />&nbsp;instances'''&nbsp;||&nbsp;an occurrence of something...||&nbsp;In computer science a selection specification of several possibilities.<br/>&nbsp; {{BL|'''&mdash;One mode of counting production quantities'''}}, a class of goods types in Trainz; usually used as a product class, setting up a load amount by class of product. e.g. a flat car might hold up to seven pallets of general goods; {{BL|each being an instance of general goods}} in one allowed variation (each a C/S instance!) of its {{TRC|queues}}&mdash;where the second usage refers to a choice in model construction of several different queue product types which might be enabled for that traincar.<ref>Dictionary.com [http://dictionary.reference.com/browse/instances definition]</ref> |- |}<!-- careful, endtable ---> ===Ja_to_Mz=== {{anchor|J|K|L|M}} {{anchor|j|k|l|m}}{{anchor|JA file|JA files|JA File|JA Files}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;'''JA file''' ||&nbsp;Compressed Asset Base file type&nbsp;||&nbsp;The standard Auran Compressed Asset Base ({{TG|CAB file|p=CAB system files}}), which includes all the built-in items of your Trainz release version. JA files are configured for rapid upload into the game and tightly organized. They may be ported version to version within certain limitations. TS09 JAs, TS10 JAs can be added to TS12's bag of tricks. TANE is expected to have similar capability, otherwise route and session assets that took many man-months to create would not be forward-compatible, a hallmark of Trainz since its earliest days.{{see also|Trainz/file types by extensions}}{{anchor|kuid|kuid reference|Kuid|kuids|Kuids|KUID}} |- |&nbsp;'''kuid reference''' or&nbsp;<br />&nbsp;'''referenced kuid'''||&nbsp; {{TN|enumerated}} data type<br/>restricted to {{TL|KUIDs}}&nbsp;||&nbsp;{{TL|KUIDs}} data field of a tag listing a sub-asset ({{TG|dependency}}) used to build the current asset in a {{TA|config.txt file}} {{TR|T|p=tag}} or {{TL|container}}. Specific data key-words (tags) will specify a kuid reference, which must then also be listed in the asset's {{TBS|kuid-table}} (identifying independent asset dependencies). |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp{{anchor|layout|map|route|layouts|maps|routes}}{{anchor |Layout|Map|Route|Layouts|Maps|Routes}} |- |&nbsp;'''layout'''&nbsp;<br />&nbsp;or '''route'''<br />&nbsp;'''map'''&nbsp;||&nbsp;Trainz virtual worlds we create or drive in&nbsp;||&nbsp;'''Layout''' is the physical model railroading term for a model railroad assembly. In Trainz the literature and screens often call these '''routes''', the ''collection of `Trainz Map boards' making up a digital world, which is organized by a config.txt file of {{TR|k|map}}.''{{anchor|Loader|loader|launcher|Launcher|Main Menu|Main Menus|main menu|main menus}} |- |&nbsp;'''Launcher'''&nbsp;||&nbsp;..\bin\trainz.exe&nbsp;||&nbsp;the Launcher is the initialization software (&nbsp;..\bin\trainz.exe&nbsp;) which transitions Trainz (since Trainz 0.9&ndash;to&ndash;TS12) from the {{TL|Launch screen}} (where one can set options, enter Content Manager, goto manuals, goto the web, etc.) to the GUI modules, entering the Main Menu. |- |&nbsp;'''Loader '''&nbsp;||&nbsp;varies, often confusedly trainz.exe&nbsp;||&nbsp;Exception is the TRS era versions wherein the loader application was named for the release short name, so TRS2004.exe, TRS2006.exe, TC.exe. This is the exe file normally linked into by shortcuts and resides in the installs root folder. <br/>Not to be confused with ''''''install root''..\bin\Trainz.exe''', which is the launcher, which boots the Trainz Main Menu screens. |- |&nbsp;'''Main Menu'''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor| Merscom|Paradox Interactive}} |- |&nbsp;'''Merscom'''&nbsp;||&nbsp;Software Publisher<br />North American Mkt,<br />for {{TL|Trainz Driver|TD}} & {{TL|TRS2006}}&nbsp;||&nbsp;MERSCOM had been one of the main software duplication, publishing and distribution partners of Auran in the past&mdash;notably for the {{TL|TRS2006}}, Trainz Driver (demo) and the Trainz Railwayz TRS2006-SP1 releases. The {{plain link|http://www.ign.com/companies/merscom|MERSCOM games}} company is still a going concern<ref name="MERSCOM">Mercom games url: [http://www.ign.com/companies/merscom], distribute {{TL|TRS2006}} releases. URL valid on 2015-0815{{bullR}} Trainz Railroad Simulator 2006 on PC February 2, 2006{{BullR}} Trainz Railwayz on PCs October 8, 2007{{BullR}} Trainz: Driver Edition on PC September 19, 2006{{BullR}} source and dates by Merscom at url given. </ref>. |- |&nbsp;'''mail car'''&nbsp;||&nbsp; A class of rolling stock &nbsp;||&nbsp;when rails were king, valuables and small freight (Sears and Roebuck Mail-orders!) carrying cars commonly the target of robbers like Jesse James and his crew, since they frequently carried money or bullion! |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''minimap'''&nbsp; |&nbsp;Ks: {{Kp|CTRL|M}}&nbsp;<br />&nbsp;Kd: {{Kp|M}}&nbsp;||&nbsp;In Surveyor, opens a map less than full screen size that one normally sizes and positions in the lower LH corner as preferred using {{Kp|LMBHd}}. It shows the surroundings from the centered-cursor/camera position, and a key feature is it selectively allows one to see labels not otherwise displayable in Surveyor or Driver (e.g. Names of triggers) Alternatively, also {{Kp|M}} in Driver, only. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |}<!-- careful! Table end ---> {{anchor|n|o|p|q|r|s}}{{anchor|N|O|P|Q|R|S}} ===Na_to_Oz=== {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;'''Native mode'''&nbsp;||&nbsp;TS2010 default mode&nbsp;||&nbsp;default to Multicore uP mode and higher level graphics card software calls in {{TL|TS2010}} and of {{TL|TS2009|TS2009 SP4}} (V3.3).{{efn | TS09&mdash;TS10 was used to make a transitional implementation of the AURAN JET 2 game engine to {{TL|TSMac1}} and thence to the AURAN JET 3 technology of {{TL|TS12}}, which pushes 32 bit computer capabilities to the limit, and was why the improved features promised for TS2009 didn't arrive until SP4. N3V needed more time with it's small programming staff to make all the necessary engineering adjustments to transition the product line to the Mac computer's OS-X OpSys and to take advantage of newer Windows computer improved technologies.}} {{anchor|operating system|Operating System|OS|OpSys|NAMCON}} |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{ anchor|Android|operating system|OS|Operating System}} |- |&nbsp;'''OS'''&nbsp;<br />&nbsp;'''OpSys'''&nbsp;||&nbsp;a '''{{wp|operating system}}'''&nbsp;||&nbsp;For most Trainz releases one version or another of {{wp|Microsoft Windows}}; since 2011 and {{TL|Trainz Mac}}, {{wp|OS_X|Apple OS X}} and subsequently phone and pad operating systems such as {{wp|iOS}} and {{wp|Android (operating system)|Android}}. Some users have reported running it under a version of Linux. {{ anchor|N3VRF41L|N3V Games|N3VRF41L Software|Auran Development|Auran Holdings}} |- |&nbsp;'''{{TL|N3V Games}}'''&nbsp;||&nbsp;subsidiary of '''N3VRF41L Pty Ltd'''&nbsp;<br />&nbsp;Possibly a joint venture with Auran Holdings, Pty Ltd.||&nbsp;N3V Games holds development and licensing rights of the Trainz franchise, and appears to be a joint venture by Auran Holdings, PTY LTD who holds those copyrights, and Tony Hilliam's N3VRF41L Computing. {{TN|Tony Hilliam}} is known to have injected funds to the bankrupt Auran Development, Pty, Ltd. ca 2007 when the company went into receivership from over extending on another video game. N3V and Auran Holdings seem to have emerged in the aftermath of the legal dealings. First known title: {{TL|Trainz: The Complete Collection}}<ref name="Trainz CC">{{TL|Trainz: The Complete Collection}}: This boxed set has '''N3VRF41L Pty Ltd''''s logo prominently on the packaging. Published 2007. Pictured in collection on [[Trainz]] 1st Page. That edition may be the first released by the new (probably interim, provisional) Auran operations head, Tony Hilliam, proprietor of N3VRF31L during the Auran bankruptcy.</ref> |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''NAMCON'''&nbsp;||&nbsp;lit. {{BL|naming convention}}&nbsp;||&nbsp;'''Naming conventions''' are just guidelines or rules as to how a name is formatted. For example in an encyclopedia, should titles be singular or plural, and what are the rules for letter cases and international variations in spellings? Is it better to make a {{TBS|username}} of the form:'' 'PRR 40' Boxcar' ''or'' 'Boxcar, 40ft PRR'?'' These vary {{TN|C|CC}} to {{TG|C|CC}}, and within ''any organization'' producing co-operative output. |- |} ===Pa_to_Qz=== {{anchor|i|I}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''image file '''&nbsp;||&nbsp; graphics files&nbsp;||&nbsp;data in image form, Trainz handles {{wp|.bmp|BMP}}, {{wp|.jpg|JPG}}, {{wp|.tga|TGA}}, and {{wp|.gif|GIF}} image file types. With {{TL|TANE}} and {{TL|TRS19}} {{wp|.png|PNG files}} may be added as legal types, though assets which include them, require transforms to take the asset back to prior versions. For others, see {{TL|file types}}{{anchor| Paradox|Paradox Interactive}} |- |&nbsp;'''Paradox<br />Paradox Interactive'''&nbsp;||&nbsp;Toronto Based Software Publisher&nbsp;||&nbsp;Paradox Interactive a short lived software duplication, publishing and distribution partners of Auran in the past&mdash;notably for the re-publishing 3 DVD omnibus edition {{TL|Trainz: The Complete Collection}}. Paradox might also have distributed the {{TL|Trainz Classics}} release, but the cover art, etc. only lists {{TN|N3VRF41L Software}} and Auran. The {{plain link|https://www.paradoxplaza.com/games|Paradox Interactive games}} company is still a going concern<ref name="ParadoxInt'l" >Paradox Interactive games url: https://www.paradoxplaza.com/games, & etc. valid on 2015-0815</ref>.{{anchor|named parameter|parameter}} |- |&nbsp;'''named parameter'''<br />&nbsp;or '''explicit parameter'''&nbsp;||&nbsp;A keyword in computing Jargon&nbsp;<br/>&nbsp;Computer Science<br />'Term of Art'&nbsp;||&nbsp;A ''''name keyword'''' in scripting encoding and decoding languages (such as wikimarkup language which builds this page) which has limited scope and which is a ''specific keyword'' (i.e. {{TG|enumerated}} cited/used to ''assign a value'' when passing a (temporary {{TN|instance}}) value to another process. * In contrast a 'placeholder parameter' (also 'dummy parameter') depends on its positional order in a que of such pass parameters. In trainz most container values are positional placeholders listed such as '''<code> {nn: 0, 1, 2, 3, ...} </code>''' where the R-values (e.g. a list of attachment points for all simulated digital persons disembarking a train at a station, or the very common {{TRC|bogeys}}, {{TRC|thumbnails}}, and {{TBS|kuid-table}} containers. * Both the passing routine and the deciphering or called code must evaluate the term the same, and such parameters are case sensitive. The analog in general computing is a variable which must be declared of a specific type. In the scripting application, the typing is handled solely by context and interpretation, while in the compiled computer languages, the typing corresponds to allocation of physical memory and the typing also constrains the types of operations allowed on the data.{{anchor|pass parameter}} |- |&nbsp;'''parameter'''&nbsp;<br />&nbsp;'''variable'''&nbsp;||&nbsp;Computer Science<br />'Term of Art'&nbsp; |&nbsp;A computing software term referring to a 'definable keyword' for the manipulation and control of the ''variable value''. The parameter may just be allocated and defined locally (a loop counter in a string parser function) or by passing it into another part of the software {{BL|as an input}}&mdash;such as ''placeholders'' (next) and named parameters (above) covered herein. * The receiving (passed to) code is normally a function or module which then further processes or acts on the passed data, normally without any ability to alter it in the calling code.{{anchor |placeholder|dummy|placeholder parameter|dummy parameter|Placeholder|Dummy|Placeholder parameter|Dummy parameter}} |- |&nbsp;'''pass parameter'''&nbsp;||&nbsp;Computer Science<br />'Term of Art'&nbsp;||&nbsp;A computing software term referring to sending a value into another part of the software {{BL|as an input}}, normally a function or module which then further processes the passed data.{{anchor |pass parameter}} |- |<small>&nbsp;'''placeholder parameter''' <br /> or<br />&nbsp;'''dummy parameter''' <br /> or <br />&nbsp;'''dummy keyword'''&nbsp;</small> |&nbsp;{{wp|Computer Science|computing}} term<br />&nbsp;Computer Science<br />'Term of Art'&nbsp;||&nbsp;A '''dummy or placeholder''' is a reference made in a sequential order, so one whose data is evaluated ''in that '''{{'}}place{{'}} in a list's {{'}}read order{{'}}'''''. {{BullR }}These (numbered 0, 1, 2,...,nn) are often seen in various {{TRC|p=Trainz Containers}} such as the names of the subcontainers in the {{TR|C|thumbnails}} or {{TBS|kuid-table container}}. Many Trainz {{TA|containers}} and especially Trainz's sub-containers defining data for initializing an {{TN|A|array}} are placeholders ('Ph') usually represented by the set {Ph: 1, 2, 3, ..., nn}&mdash; for all Trainz data definitions values are pairs of the form '''{{'}}keyword{{'}} (whitespace) {{'}}Data{{'}}'''. These commonly seen plain vanilla '''''dummy keywords''''' can be replaced by a single text label at the user's discretion, provided it contains no whitespace characters.<hr/> * Wikimarkup language's template placeholders are {{TN|unary valued}} text {{TN|pass parameter}}s and position sensitive but may be passed explicitly like a {{TN|named parameter}} as well s.a. <nowiki>3=glops</nowiki>{{anchor |Path|pathspec|path| \pathspec|pathfilespec|Pathspec|..\pathspec}} |- |&nbsp;'''filepathspec'''&nbsp;<br />&nbsp;'''Path, path,'''<br />&nbsp; or '''PATH'''&nbsp;<br />&nbsp;'''..\pathspec'''&nbsp;<br />&nbsp;and &nbsp;<br />&nbsp;''just '''pathspec'''\...''&nbsp;||&nbsp; Operating <br/>system path &nbsp;<br />&nbsp;MS Windows or other OS path (disk location) from some reference folder&nbsp;||&nbsp;''reference to folders hierarchy in Windows''; C:\TS12\UserData\editing\$dummyScreenshot.jpg for example has a pathspec, a filename and is when all together a'' 'filenamespec' (also 'filepathspec')'' combining ''both <u>levels of organization</u>''.<br />&nbsp;usually used to signify ''a {{'}}relative sub-folder{{'}} (from the '''''{{'}}local {{TG|root directory}}{{'}}''''')'' ; 'The Home Folder' of that {{TG|install| Trainz' install directory}} so '..\TS12\bin' and '..\bin' would mean the same in usage context.<br/><b> '..\TS12'</b> means what ever the '..'=initial_pathspec is the way you installed Trainz (i.e. where TS12 is installed on your computer). See also {{here|N|namespec}} below. {{anchor |PEV}} |- ||||| |- |&nbsp;'''PEV'''<br \>&nbsp;'''PEVSoft'''<br />&nbsp;'''PEVtools'''&nbsp;<br />&nbsp;and &nbsp;<br />'''Peter Villaume'''||&nbsp;Mega-Trainzer:<br/>'''Peter Villaume (PEV)''' |&nbsp;Peter Villaume (PEV) is a really talented programmer and {{TL|CC}} (engineer, actually) situated on the opposite (or Sydney) side of Australia from N3V & Auran Holding's small town location on the Gold Coast near Brisbane, and wrote quite a few Tools to help maintain and update Trainz content (assets) when N3V Games began changing both the {{TL|Trainz data model}} and the way {{TL|Content Manager|CMP & CM}}s detected and claimed faults. His images2TGA {console version) was bundled with {{TL|TS2009}} by N3V Games. He's also been involved in {{TL|AssetX}} technical issues; but aging and becoming less active ceased hosting his tools on his own website in mid-2013 when the task was taken over by Trainz forum guru {{TN|Shane Turner}} on his help site. {{anchor |PEVsoft|PEVtools|PEVtool}} |- |&nbsp;'''{{TA|PEVtools}}'''<br />&nbsp;'''PEVsoft'''&nbsp;||alt:&nbsp;'''PEV-tools'''&nbsp;||&nbsp;''general use'', Asset updating {{plain link|http://trainz.shaneturner.co.uk/tutorials/index.php/home/utilities/pevsoft-trainz-tools|freeware suite}} that in later Trainz can fix many error conditions, generate shadow meshes and convert old fashioned v1.x PM to IM mesh files. See {{TA|Setting up PEVtools}} and {{TA|PEVtools}} pages.{{anchor |progressive mesh|pm|pm file|.pm file|Progressive mesh|PM|PM file|.PM file|Progressive Mesh}} |- |&nbsp;'''.pm'''&nbsp;<br/>&nbsp;'''pm file'''&nbsp;<br/>&nbsp;'''.pm file'''&nbsp; |&nbsp;''progressive mesh''&nbsp;||&nbsp;early mesh types produced by 3ds Max, and gmax 3D graphics modeling software suites rendered by Trainz as visual (and invisible) objects acted upon or just displayed by the Trainz software suite. About 2003, {{TN|IM file}}s replaced the older .pm file (Progressive Mesh) technology as preferred mesh organization for Trainz. {{BullR }} Peter Villaume (PEV) wrote the utility tool program PM2IM that converts the old PM files into the IM files. {{BullR }} PM2IM.EXE will also 'strip' an IM file mesh file of illegal (non-English character set) {{w|glyph}}s so the asset will function properly.{{ efn |1=On ''IM file mesh Stripping:'' Characters of filenames are strictly enumerated, so certain {{wp|Unicode}}d representational codes make their way converted into English UTF-8 as Non-Conformal Names creating illegal texture references in most languages. {{BullR}} The key criteria for this syndrome is the asset seems to have perfectly valid textures on inspection, but {{TL|CM}} reports it can't load either the mesh or texture, or both. Running PM2IM directly (or from the CMD prompt) lets you launch into the application, ''use the menu to select the stripping mode'' (not a default) and load the suspect file. ''Stripping and re-save of the {{TL|.im file}} mesh occurs immediately.'' }}<br /> {{anchor |prototype|prototype company|prototype traincar|Prototype|road company|operating Railroad|operating Railroad Company|operating company}} |- |&nbsp;'''prototype'''&nbsp;||&nbsp;Railroad modeling term&nbsp;||&nbsp;The actual ''operating Railroad Company'' (road company), or it's rolling stock assets being modeled.{{BullR }} A prototype route {{TR|K|map|(map)}} is a layout, probably {{here|DEM}} generated, based on an actual division or region involving the prototypes Era, and surrounds.{{BullR }} Prototype {{here|Heraldry}} are the logos and color schema for it's operating rolling stock. {{BullR }} Similarly '''''any building or asset''''' (such as a city hall, train station, bridge or port) can be modeled on it's prototype's design, such as signals used by the eras AT&SF, PRR, B&O, NYC, or B&N road companies; highway signage, bill boards and everything not made up without a real world basis. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; {{anchor|QDR|qdr|Quick Database Repair}} |- |&nbsp;'''QDR'''&nbsp;||&nbsp;'''<u>Q</u>uick <u>D</u>atabase <u>R</u>epair'''&nbsp;||&nbsp;Selecting''' QDR''' from the CM {{kp|ALT|F7}} hotkey or options menu launches the little brother of the {{TN|E|Extended Data Base repair}}, which forces a quick partial database self-audit, including cross-checking installed assets, filenames, and inventory check it's references to the record like ..UserData\Originals, backups and etcetera. * It takes a short while (10-30 minutes) but may reconnect files in {{TG|A|Assets.tdx}}, 'open for edit' or those you may have added in other folders as a result; comparatively the EDR takes a much greater time, even with no added content on a system. |- |} ===Ra_to_Sz=== {{anchor|N|O|OS|OpSys|NAMCON}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|R|r}} |- |{{anchor|Asset Root|Asset root|asset's root}}&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''Asset Root {{Center|folder}}'''&nbsp;'''asset's root''' or<br />&nbsp;'''asset's root''' {{Center|'''folder'''}} |&nbsp;local {{TN|I|Install}}'s ..\editing subfolder of any Trainz installation |''usually'' where {{TL|Content Manager}} opens a sub-folder in the Trainz' Installation's ../editing sub-folder;<br/>''or sometimes'' means a users or {{TL|CC}}'s archive or {{TN|WIP}} source folder before importing it into his uploader CM Installation.<br />''In each case'' '''the folder defining all of that asset'''.<br/>Note: Many veteran Trainzer's, esp. CCs keep a second (backup) or third (plain jane) Trainz install to test {{TN|D|dependencies}} on a 'bare' version before uploading. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|root|root folder|drive root}} |- |&nbsp;'''Drive Root folder'''<br />&nbsp;'''Root folder'''<br />&nbsp;'''local root''' or<br />{{Center|'''local root folder'''}}||&nbsp; {{TN|I|Install}}ed base subfolder of an<br />hard drive &nbsp;||&nbsp;Roots, are the top of a hierarchy of related child folders. In a drive, C:\ is normally the drive root, but not the Windows root which is C:\Windows.<br/>For Trainz, the root is where you let the installer software put a Trainz version when adding the software to your computer. Conventions were C:\Auran\subfolder and later C:\N3V, or D:, E:, or F: hard drives (HDD) with like names. Some put {{TN|I|Install}}s directly off the root of the HDD such as for example:'' 'F:\$TS12-SP1+hf3' ''or'' 'D:\TS09-SP2' '', both actual folders on this computer at the moment!) <br/>'''Hot user tip:''' Putting Windows and Trainz versions on the same HDD will slow things down, as will installs on the same HDD as the Windows TEMP (cache folders) directory. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; {{anchor |recommit|recommit assets}} |- |&nbsp;'''recommit'''&nbsp;||&nbsp;an asset open for edit&nbsp;||&nbsp;A redo of {{here|committing}} an asset, normally after editing in changes.{{ anchor|revert|reverting}} |- |&nbsp;'''revert'''&nbsp;<br/>&nbsp;'''reverting'''&nbsp;<br/>&nbsp;'''reverted'''&nbsp;<br/> |&nbsp;CM action/mode&nbsp;||&nbsp;Reverting a file/asset refers to restoring an asset's files to a pre-change (backup) version using RMBh+d action. A File ''opened for edit'' will automatically be deleted when reverting, ''as if the edit never happened''. This can be used to steal a texture or modify an old to a new kuid (Clone manually) and the older version will be re-indexed and used as if no edit had affected the item. It is also useful to test whether a change will {{here|validate}} and/or {{here|commit}} successfully, and can be delayed{{efn|Delay time before an asset is no longer able to be reverted depends upon your backup settings in the Launcher>Options menu. Backups are by date groups, so a setting of 3-7 is reasonable for users with unpredictably sporadic Trainz time; but it means assets should be tested in the GUIs soon after an change edit is made or the backup data might be lost and {{here|reverting}} would become impossible.}} so the changed asset can be tested in the GUI's as well. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor |rule|Rule|Driver Command|driver command|rules|Rules|Driver Commands|driver commands}} |- |&nbsp;'''Rules and'''&nbsp;<br />&nbsp;'''Driver Commands'''&nbsp; |&nbsp;Trainz Interactive software&nbsp; |A command in a {{TL|Driver}} {{TL|session}} encapsulated in a little graphic rectangle with icons representing (fronting for) a ''re-entrant scriptlet'' in Trainz extensible {{TL|GameScript}} language. The only significant difference is the Driver Commands can be dynamically added to a AI Drivers Command queue in {{TL|Driver}}, while '''rules''' are used to write the session progression&mdash;''script the scenario''. * Further discussion on this term can be found in {{TG|Rule|here (glossary)}} and {{TL|Rules}}. {{anchor |CSAR|SAR|S|s}}string array}} |- |&nbsp;'''CSAR'''&nbsp;<br />&nbsp;fm '''SAR'''&nbsp;||&nbsp;Computing<br/>Term (Jargon)&nbsp;||&nbsp;''lit.:'''Conditional Search and Replace'''&nbsp;and '''Search and Replace''', (aka, 'Find and Replace'); variant GSAR=Global Search and Replace'' (all or nothing, more risky that you may change something you shouldn't than one by one. Use REGEX to narrow risk significantly.{{anchor |Scenario|Scenarios|scenario|scenarios}} |- |&nbsp;'''Scenario'''&nbsp;||&nbsp;{{TL|Driver|s=Scenarios|p=Driver module Scenarios}}&nbsp;||&nbsp;{{TL|scenario}}s were modular interactive scripted software elements which acted as a adjunct to Trainz Driver, and provided the first game experience offering task challenges, scoring, and switching operations. Crude ability to load and load trains off-camera enabled distribution of cars and then picking up the same during the same gaming session. {{TL|Sessions}} supplanted use of scenarios as the {{TG|TrainzScript}} module was not directly integrated into the game, whereas the session editor was part of {{TL|Surveyor}}. {{BullR }}Support for Scenarios will not be continued after {{TL|TS12}}'s service packs. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp; |&nbsp;{{anchor |service pack|Service Pack|service packs|Service Packs}} |- |&nbsp;'''Service Pack'''&nbsp;||&nbsp;Major {{wp|software upgrade}}<br/>&nbsp;{{MAIN|{{TL|Service Packs}}}}||&nbsp;A computer science term referring to the way data and often ''new program code'' are organized and released to (normally) self-update (install) a piece of updated computer software. Windows XP for example had three major Service Pack releases over a lengthy period. Various Trainz release versions, those incorporating the most new technology and changes in the {{TL|data model}}s have had as many as four. {{anchor |session |Session sessions |Sessions}} |- |&nbsp;'''session'''&nbsp;||&nbsp;{{TL|Driver|s=Sessions= modern Driver module activities}} similar to driving a {{TN|scenario}}&nbsp;||&nbsp;Trainz Sessions are {{TL|GameScript}} based ''{{TL|Driver|Driver module}} 'scripted game play activities' ''that create an interactive game play episode with tasks, conditions, and standards set by the {{TL|Session creator}}. * Sessions were introduced in Trainz's {{TL|TRS2004}} version ''as a better, easier-to-make, user friendly'' replacement for {{TN|scenario}}s. {{TR|K|activity|p=KIND Activity}} was in fact the data base identifying asset type assigned to the earlier {{TL|TrainzScript|TrainzScript program}} generated {{TN|Scenario}}s... showing how Auran thought of that early attempt at interactive play. {{TL|Session}}s are {{TR|k|profile|p=KIND Profile}}s and depend upon a code library of built-in scripts as enhanced by {{here|Rules|Trainz Rules}}, again which are re-entrant scripts or scripletts programed by a Session Creator using the {{TL|Surveyor}} {{TL|Session Editor}} API mode.{{anchor |set notation|Set Notation|Set notation}} |- |&nbsp;Set notation<br/> '''{xxx: val-0, val-1, val-2, ..., val-nn&#125; '''&nbsp;||&nbsp;list of 'xxx' typed things are:... ''values list''&nbsp;||&nbsp;'''example: ''{tag: category-era-0, category-era-1, category-era-2, ...&#125;'''''{{anchor|string|character array|String|Character array|string array}} |- |&nbsp;'''String'''<br/>&nbsp;character array&nbsp;||&nbsp;text &nbsp;||&nbsp;an sequence of characters in computer science. Text: characters in some organized order with a meaning. A string is a primitive (basic) data type, generally stored in an {{here|array}} of {{here|characters}}.{{anchor|string array|String array}} |- |&nbsp;'''String array'''&nbsp;||&nbsp;Wikibook term<br />{{TA|container|special container}}<br />&nbsp;data class name&nbsp;||&nbsp;Several Trainz {{TN|L|legacy tags}} or {{TN|K|keyword}}'s which had numeric suffixes for each declaration have been superseded by defining those values within a quoted string and delimiting (separating) them from the next by ''''''use of a {{wp|semicolon}}'''''' <code> <big>';'</big></code>. (See {{TBS|name-xx}}, {{TBS|category-region-xx}}, {{TBS|category-era-xx}} etc. versus {{TBS|username-xx}} explanations.) |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp; |&nbsp;{{anchor|structure|data structure|structures|data structures}} |- |&nbsp;'''structure''' or<br/>&nbsp;'''data structure'''&nbsp;||&nbsp;{{wp|data structure}}&nbsp;||&nbsp;A computer science term referring to the way data is organized internally in a piece of computer software. Trainz {{TR|C}} and {{TR|K}} are higher level Trainz data structures, while simple {{TR|T}} are simple keyword-value paired data values with proscribed enumerated keywords, having a corresponding 'key meaning' in the self-definition of a digital model ({{TL|Assets}}). {{anchor|whitespace|whitespace character|Whitespace|Whitespace character}} |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |}<!-- careful! Table end --->{{clear}} [[File: Trainz Routes CDROM patcher control screen publically crediting N3VRF41L Publishing PTY LTD-likely the 1st N3V Trainz project release.JPG|thumb|right|200px|2007's {{TL|Trainz Routes}} was likely the 1st N3V-N3VRF41L Publishing PTY LTD- Trainz project release.]]{{-}} {{anchor|T|TAD|TADdaemon|Ta|Tb|Tc}} ===Ta_to_Tc=== {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;'''TAD'''&nbsp;||&nbsp;'''T'''rainz '''A'''ssets<br/>'''D'''atabase&nbsp;||&nbsp;Where all the goodies bundled or off the web are kept in your Trainz Installation to feed {{TL|CM}}, {{TL|Driver}}, {{TL|Surveyor}} and {{TL|Railyard}}. Today's Trainz run a program called TADdaemon in the background to handle multi-tasking activities, including internet interactive gaming. |- |&nbsp;'''TADdaemon'''&nbsp;||&nbsp;'''{{here|TAD}}''' + '''{{wp|daemon}}'''&nbsp;||&nbsp;A '''''T'''rainz '''A'''sset '''D'''atabase'' transactions manager added to Trainz in TS09-SP4 and begun and mostly debugged in the TS10's during the same 2008-2010 years.{{BullR }}The <u>most important thing</u> to know about the TS09&TS10's TADdaemon is you need to give it 30-45 seconds (''to finish its bookkeeping needs'') and <u>completely shut down</u> after closing any Trainz install completely&mdash;{{BL|''and esp. before rebooting''{{efn|Before rebooting after quitting Trainz with a TADdaemon, it is best to use {{kp|SHFT|ALT|ESC}} to open and watch its entry in the {{wp|Windows Task Manager}}, and wait until Task Manager deletes its process line. }}<!-- first note ends --->''or powering down the computer!''}}{{efn<!--2nd and Very long note begins... ---> |name=TDtip|As a transactions manager TADdaemon also allows one to run CM and ''even multiple times the <u>same CM</u>'' safely whilst Driving or running Surveyor!{{BullR }}The CM's filter tabs will 'interact' and have a mild conflict, but if one sets a static filter up on the first, and a different filter up on the second, Surveyor and the CM's co-exist quite handily. {{BL|''The secret is to only change the filters on the first one launched''}} (which is in control of the data), so {{BL|1st define a filter for the second to use}} and after launching the second, {{BL|select only that filter and stay with it without alterations therein. '''''Shut the 2nd down <u>first</u>''', and all will be peachy keen.''}}<ref>On running multiple Trainz {{TL|CM}}s: Conclusion of observations by informal but systematic "TS12 Stress Tests" by Computer Engineer Fabartus, June of 2014.</ref> (Just don't count on that first CM's 'Current Search' to be unchanged if you refresh!){{BullR }} See also Forum thread: {{plain link|http://forums.auran.com/trainz/showthread.php?110816-Validating-why-N3V-keeps-loosing-customers-and-what-to-do-about-it| Validating-why-N3V-keeps-loosing-customers-and-what-to-do-about-it}} }}<!-- END efn call ---> {{BullR }} '''Be sure to 'Click on it'''' ''to read the above immediately preceding {{BL|long explanatory NOTE!}}''; Then just ''Click there on the note'' to return here!{{BullR }} The <u>second most important thing</u>, is that if still active, that 30+ seconds long window was '''designed to give you time''' to quit CM and Launch the {{TN|run-time GUI}}'s, in which case, Trainz will have a handle on the current database state and will load much faster <ref name="Jmoody-explains01">Dec2013 email from (then) versions manager, James Moody to Fabartus on Trainz technical matters for the N3V Wiki and WB.</ref>.{{BullR }} After the avoidable data base crashes from the TS09/TS10 TADdaemon, the TS12-SP1 and Trainz Mac releases all need only a brief 5-6 seconds delay before one can safely shut down.<ref name= "Jmoody-explains01"/> The Quick launch capability was however retained, though this editor<ref name="FAB">Editor, computer engineer, and route builder Frank Bartus (Fabartus)</ref> prefers keeping CM open and active while running Surveyor or Driver for it's better filtering.{{anchor |TBD|TBDL}} |- |&nbsp;'''TBD'''&nbsp;<br />&nbsp;'''TBDL'''&nbsp;||&nbsp;English {{wp|jargon}}: something unsettled yet&nbsp;||&nbsp;''lit. '''To Be Determined''' or '''To Be Determined Later''','' this later form carrying the connotation the tabling of some issue or feature is both by design and intent. Alternatively may mean: '''To be Defined''' or Defined Later.{{BullR }} Many societies, whether they be business, government, or social, know the best way to eat an Elephant is one bite at a time. ''Starting is half-done'' is a truism in allocating scarce time resources, and many decisions can be deferred (such as what might go into blank lines on this table) until a fuller picture of needs is determined, or time is available to address teh topic.{{anchor |TBS|TrainzBaseSpec}} |- |&nbsp;'''{{TBS|p=TBS}}'''<br />&nbsp;abbrev for<br />&nbsp;'''TrainzBaseSpec'''||&nbsp;The {{TR|x|TrainzBaseSpec}}<br />&nbsp;lists common tags and containers||&nbsp;Fundamental ''''''parent data set'''''' {{here|define}}s allowed and seen in any asset {{TR|K|p=KIND}} {{TL|config.txt file}} which every self-defining asset or element needs to bootstrap itself in Trainz. The TBS contains the {{here|set}} of {{here|defines}} which are ''common to and legal in'' <u>all assets</u>. {{BullR }} Some tags are optional, and some KINDs hardly ever define such&mdash;often true for building block traincar parts, such as bogeys and hitches, etcetera. Many older content items, for example often do not contain a {{TBS|description}} string, nor {{TBS|thumbnails container}}.{{anchor |Trainz CC|Trainz Complete Collection|the TC's|The TC's|TC|TC's}} |- |&nbsp;'''TC'''&nbsp;<br/ >&nbsp;or '''The TC's'''<br/ >&nbsp;or '''TC.exe'''<br/ >&nbsp;||&nbsp;Trainz Classics or the<br/ >&nbsp;TC1&2 Exe file&nbsp;||&nbsp;''The three '''Trainz Classics''' were a desperate attempt for the struggling {{TL|Auran|s=Auran_Development|Auran Development, Pty. Ltd.}}'' who'd over-invested in their '''''Fury MMORPG''''' PC video game<ref>From {{wp|Auran|Auran and N3V Games}} combined history/article</ref> to raise cash by publishing '{{TL|Auran partner}}'s'' 'High Quality' third party {{here|payware}} content''.{{BullR }} The same period of financial turmoil saw Tony Hilliam, his family, and his then {{BL |N3VRF41L Software}} (now {{TL|N3V Games}}){{efn |N3V is later shorter form of logo {{BL|'N3Vrf4il'}} or NeverFail Computing)}} inject cash into Auran{{efn |The exact story and timing on this is unclear and mostly nobodies business but the principles, but in 2007 competitor N3V (N3Vrf4il or Never fail&mdash;the name in a certain font and coloring scheme looks cute forming a logo), buy into {{TL|Auran#Auran_Development|Auran}} which had to lay off virtually the whole staff and entered bankruptcy seeking protection from it's creditors. Credits from early trainz releases show Tony Hilliam as an Auran employee or consultant.{{BullR }}The Trainz community noticed for the old web server and websites, including the very active Auran.com forums went dark for about six weeks, a traumatic event in the Trainz community, one result being various groups of people got together and created many of the non-Auran forums Trainz sites like {{TL|Trainz Pro Routes}}. {{BullR }}When the servers came back, the new management team was headed by Tony Hilliam and N3V had acquired publishing rights to the Trainz franchise's various software releases.{{BullR }} It appears Hilliam, his family, and his investor associates then later acquired development rights as well as publishing rights, giving TRS2006 the GUI modules facelift with it's ugly bright red brick color theme and after resuming development eventually resulting in {{TL|TS2009}}.}} {{BullR }} The TRS2006 spinoffs starting with {{TL|Trainz: The Complete Collection}} ({{here|TCC}}) and the {{here|BI|sparse-in-BI-assets}} with regional focii such as {{TL|TRS2007}}, {{TL|TRS2008}}, and all three Trainz Classics. Both classics 1 and 2 were so sparse of built-in content and the complaints & pushback so vocal, the North American distributor Merscom almost immediately combined them into one {{here|TC1&2|TC1&2 version.}} {{anchor |TC1&2|Trainz Classics 1&2|TC1|Trainz Classics 1|TC2|Trainz Classics 2}} |- |&nbsp;'''TC1&2'''<br/ >&nbsp;abbrev for<br />&nbsp;'''Trainz Classics 1&2'''<br />&nbsp;or '''TC1'''<br/ >&nbsp;or '''TC2'''||&nbsp;main: {{TL|TC1&2|Trainz Classics 1&2}} &nbsp;||&nbsp;means '''''Trainz Classics 1&2''''' ''general shorthand'', most widely distributed together by Merscom so grouped by that title. Spurred by nearly dead sales, the '''''TC1&2 release''''' had ''combined content'' of TC1 and TC2, so both a ''futuristic fantasy (Modula City) layout'' and a North American (New York regional) flavored Railroading Theme, but as TC1 and TC2, each were very sparse of built-in content generally sporting only those assets of it's built-in content.{{BullR }} The TC's were a {{TBS|trainz-build}} version up (TBV 2.7) up from TRS2006, but the {{TL|JA files}} of the parent version could be readily copied and added to any of the TC's.{{anchor|TC3|Trainz Classics 3}} |- |&nbsp;'''TC3'''<br />&nbsp;abbrev for<br />&nbsp;'''Trainz Classics 3'''||&nbsp;main {{TL|Trainz Classics 3}} &nbsp;||&nbsp;The last of the {{TL|TRS2006|TRS2006 spin-off versions}}'' in this book & general shorthand'' for '''''Trainz Classics 3 collection''''', a ''Trainz Classics'' release with a British Railroading Theme. TC3 began the process of new developer N3V Games evolving both the {{TL|data model}}, especially impacting definitions for locomotives and the {{TG|JET2}} game engine, while supporting easier to configure Options menu entries for newer wide screen monitors.{{BullR }}See JA's adding note above in TC1&2. TC3's {{TL|TBV}} is v2.8 and featured the payware route ''Settle & Carlisle'', which as updated versions now sold as DLC. |}<!-- caution, table ends Always save before you paste Terrain plus Objects ---> {{anchor|Td |Te|Tf|Tg|Th|Ti|Tj|Tk|Tl}} ===Td_to_Tl=== {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor |train|Train|Trains|trains|The|the}} |- |&nbsp;'''train'''&nbsp;||&nbsp;railroading term<br />usu. Loco and consists combined&nbsp;||&nbsp;Manipulating digitally modeled virtual trains is what playing in {{TL|Driver|Trainz Driver}} is all about. Strictly speaking, a collection of rolling stock or train cars, is a {{here|consist}}, an administrative term of art in railroading, the name or identity by which an {{here|operating company}} manages and tracks products and their containers, it's traincars carrying such, to and from the destinations and sources of said cargo. |- |&nbsp;'''TCC'''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|TCC|Trainz: The Complete Collection|Trainz CC}} |- |&nbsp;{{TL|TCC}}<br /> or '''The Complete Collection'''&nbsp;||&nbsp;''''{{TL|UTC}}+{{TL|TR04}}+{{TL|TR06}}<br/ >+ '{{TL|Trainz Routes}}''''&nbsp;||&nbsp;Formal retail release name of '''''{{TL|Trainz: The Complete Collection}}''''' omnibus published by the new Trainz franchise management, {{wp|N3V Games}}, via {{plain link|https://www.paradoxplaza.com/|Paradox Interactive}} under licensing from the remnant of Auran, ca. fall 2007 &mdash;repackaged the matured 3 CDROM collection with bundling ''Trainz UTC + TRS2004-SP4, TRS2006-SP1'' and the '''''Trainz Routes''''' (extra content CD) together for distribution.{{bullR }}The evidence based on version packaging is that TCC was the first release version distributed by N3V Games, then ''{{BL|N3VRF41L Software}}''.<!-- --->{{anchor |TR's|The TR's|TRS's|The TRS's|the TRS's}} |- |&nbsp;'''The TR's''' or<br />&nbsp;'''The TRS's'''||&nbsp;Versions using JET2 game engine,<br/>&nbsp; including '''{{here|the TC's}}'''.||&nbsp;collective term of convenience, up to 2007, sometimes seen by some as '''Trainz Golden era''', by which the speaker means the hey-day of the Auran Trainz forums.<br />&nbsp;Here, ''Mostly in this book'', '''The TR's''' or '''The TRS's:''' ''refer to the versions'' with similar technical capabilities in the ''run-time GUI modules'' {{TL|Driver}} and {{TL|Surveyor}} (regardless of skins), so begin with TRS2004.exe versions and end with '''{{here|The_TC's|the TC's}} to {{here|TC3}}''', spanning the five years 2003-2008 before {{TL|TS2009}}'s release.<!-- --->{{anchor |The TSes|The TS's|TSes}} |- |&nbsp;'''The TS's<br/>&nbsp;The TSes'''&nbsp;||&nbsp;{{TL|TS2009}}, {{TL|TS2010}}, & {{TL|TS12}}&nbsp;||&nbsp;collective term of convenience, quick shorthand for the three versions released by N3V Games which resumed progressive building of new features onto the base JET2/TRS2006 technology. Comparatively, {{here|The TC's}}, are minor modifications of {{here|The TR's}} techs. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; {{anchor|TLC|Tender Loving Care|TLCP}} |- |&nbsp;'''TLC'''&nbsp;||&nbsp;American slang&nbsp;||&nbsp;''lit. '''<u>Tender Loving Care</u>'''&mdash;here in the TWB, generally meaning or referring to: 'something' (an asset, usu. a route or session) which needs <u>a lot more work</u> to be acceptably up to the societies '''grade and standards!''''' {{BullR }} A corollary: Don't put things up on the DLS which aren't up to snuff! Share things you are proud of while learning with Dropbox or other cloud services, but don't stress the communities patience with you, nor damage your reputation with premature uploads of junk! |- |&nbsp;'''TLCP'''&nbsp;<BR/>&nbsp;''''Trainz Life-Cycle Policy'''&nbsp;||&nbsp;{{nowrap|{{TR2|x|Trainz_Life-Cycle_Policy}}}}&nbsp;||&nbsp;''in this book, shorthand for the controversial and user community disliked '''Trainz_Life-Cycle_Policy''','' or at least the heavy-handed implementation of it requiring assets being uploaded to conform to a higher {{TBS|trainz-build}} level than necessarily (formerly a tech-level tracking system, now perverted to become a retailing tool) needed by the asset's configuration and component parts have need of. Many if not most assets, not requiring or using a tiddly change in the Trainz script libraries, the data models work fine with much lower TB values. Auran/N3V is merely hoping to force people to upgrade to newer generation Trainz releases&mdash;so dictating they must buy new computers and video regardless of age, financial circumstances and personal choices. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;''in this book, shorthand'' |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |- |}<!-- careful! Table end ---> &nbsp; === Tm to Tz === {{anchor|Trackmark|Trackmarks|trackmark|trackmarks}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;'''trackmark'''&nbsp; |&nbsp;''Main article: {{TL|trackmarks}}'' &nbsp; |&nbsp;Trackmarks appear in surveyor and on the Map view (when enabled) as little three-D diamond shapes-most used as {{wp|way-points}}; navigation locii like those one might set for in Marine GPS navigation systems.{{BullR }} In the Earliest Trainz releases they were used so that users could manually place consists on the Map before Driving a route in freeplay (there were no sessions yet), and morphed in {{TL|Trainz 1.3}} also into way-points, which a scripted assets could use to designate routing through-points or stops for {{TL|AI-Driver|AI-driven trains}}.{{BullR }} With the advent of the expanded interactivity {{TL|TRS2004|of the TRS's}}, two variant trackmark types were added to the original red trackmarks (violet and yellow) used respectively to assign a track-class priorities (1st&ndash;3rd) and as Track Direction markers&mdash;both biasing ''routing choices'' by a train's {{TL|AI-Driver}}s. In the latter case, the directional indicate a path can only be navigated in one direction (one way streets, in effect) by AI Drivers.<!-- --->{{anchor |traincar|Traincars|Traincar|traincars}} |- |&nbsp;'''traincar'''&nbsp;||&nbsp;rolling stock<br />&nbsp;base {{TR|K|traincar|p=KIND}}||&nbsp;The term 'traincar', while understood to native speakers of English, is slang that translates badly to certain other languages<ref name="traincarSlang">The author, Fabartus, got into a ''several days'' long discussion on properly naming categories under internationalization NAMCON guidelines on the Wikimedia Commons website over the use of the term&mdash;and lost the argument (gracefully). </ref> and so is a Trainz term, more than an internationally used railroading term. {{bullR }}The widespread use of the term in Trainz discussions, generally synonymous with {{here|rolling stock}} (an acceptable international term!<ref name="traincarSlang" /> But in Trainz mainly a ''Search and Sorting'' 'Category' in {{TL|CM}}'s {{TL|Search Pane}}) is due to the fact it is a Parent KIND for both locomotives and freight or passenger vehicles. Even drivable road vehicles, such as some {{here|MOW|MOW trucks}} or {{here|Trainz Cars}} ({{wp|automobile}}s) are based on {{TL|K|traincar}} as the starting asset kind.<!-- --->{{anchor|Trainz|Trainz 1.x|Trainz 1.3}} |- |&nbsp;'''Trainz 1.x'''&nbsp;||&nbsp;steps from Beta release {{TL|Trainz CE}} to eventual {{TL|Trainz 1.3}}&nbsp; |&nbsp;''The 2001 simulator which wouldn't quit'' despite Microsoft's wishes&mdash;after 3 service packs in October 2001 to June 2002. Focused not just on game {{TL|driver|driving activity}} its {{TL|Surveyor}} is the module/tool that makes Trainz special and the Surveyor versions of today look much the same as the original with some different skins/themes and a few improved {{TL|Surveyor tools}} options like {{TL|layers}}, {{TL|Pick list}}s and other incremental changes.<!-- section redirect page target fm Trainz\Trainz Objectz -->{{anchor|Trainz Objectz}} &nbsp; |- |&nbsp;'''Trainz Objectz'''&nbsp;||&nbsp;3rd party TRS2004 utility&nbsp;||&nbsp;''Trainz Objectz was a third party authored utility to manage Trainz assets and files in the TRS2004 era, when the Trainz Asset Data base used a directly accessible folder system based on {{TL|KUID}}s. It was perhaps the inspiration for {{TL|Content Manager Plus}} (and subsequent {{TL|CM}}'s) which, along with a new file structure, effectively made it applicable only to Pre-TRS2006 family releases.''{{anchor|Trainz UTC|UTC}} |- |&nbsp;'''Trainz UTC'''&nbsp;||&nbsp; {{TL|Trainz UTC}} &nbsp;||&nbsp;''formal release name of 'UTC', '''Trainz: Ultimate Trainz Collection''''', version bundled and upgraded Trainz 1.3, with {{TG|S|scenarios}} introducing {{TG|TrainzScript}} and some extra routes and content. Scenarios scripts lead to {{TG|S|Scripting}} and Trainz interactive features (railcars and industries). |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;''in this book, shorthand'' TBDL{{anchor|Trainz Routes}} |- |&nbsp;'''Trainz Routes'''&nbsp;||&nbsp; &nbsp;||&nbsp;''A 2007 ''CDROM 'extra content' release'' of numerous small routes'' when Auran, impoverished by {{wp|N3V_Games#Demise_of_Auran|'''Fury'''}} was desperately trying to raise cash.<!-- --->{{anchor |TR04|T'04|TRS2004 }} |- |&nbsp;'''{{TL|TR04}}'''&nbsp;||&nbsp; {{TL|TRS2004}} &nbsp;||&nbsp;'''''{{TL|Trainz Railroad Simulator 2004}}''''', ''in this book, shorthand, often also '''T'04'''.''{{anchor |TR06|T'06|TRS2006}} |- |&nbsp;'''{{TL|TR06}}'''&nbsp;||&nbsp;{{TL|TRS2006}} &nbsp;||&nbsp;'''''{{TL|Trainz Railroad Simulator 2006}}''''', or after it's exe launcher: {{TL|TRS2006}}. ''As Seen some on the forums since TS10 and TS09; and in this book, shorthand; often also '''T'06'''.''{{anchor |TS09|T'09|TS2009}} |- |&nbsp;'''{{TL|TS09}}'''&nbsp;||&nbsp; {{TL|TS2009}} &nbsp;||&nbsp;'''''{{TL|TS2009: World Builder Edition}}''' or formally: '''{{TL|Trainz Simulator 2009: World Builder Edition}}''''', ca. 2008-2011{{efn |TS09 and TS10 were in joint development at the same time. TS09 was released when the technical aims of TS10 were more difficult to accomplish on a broad basis than anticipated. TS10 and TS09 both pioneered different advances in the software, and gradually merged in capabilities, with their respective fourth service packs (SP4). The two releases share many content items, but TS10 introduced new routes, tutorials, and user menu system, as well as advancing the tech into the JET 3 game engine. Both made better use of newer graphics cards capabilities and enabled Trainz to exploit multi-core CPUs. In co-development, the two shared a number of {{TL|TBV}} code levels (tech levels) and the five versions span the TBVs 2.9-3.3 (SP0-SP4 for each). The last software update, Beta Tests for Aero Trainz or Multiplayer were only available on TS10-SP4 {{TL|code build}}s.}}{{anchor |TS10|T'10|TS2010}} |- |&nbsp;'''{{TL|TS10}}'''&nbsp;||&nbsp; {{TL|TS2010}} &nbsp;||&nbsp;'''''{{TL|TS2010: Engineer's Edition}}''' or formally: '''{{TL|Trainz Simulator 2010: Engineers Edition}}''''', ca. 2009-2011{{anchor |TS12|T'12|TS2012|Trainz Simulator 12}} |- |&nbsp;'''{{TL|TS12}}'''&nbsp;<br />&nbsp;''general shorthand'' |&nbsp; {{TL|TS2012}} &nbsp;<br />&nbsp;''general shorthand'' |&nbsp;''formally:'' {{TL|Trainz Simulator 12}} and also metal boxed {{nowrap|commemorative set: {{TL|Trainz 10th Anniversary Collector's Edition}}}} or informally: {{TL|TS2012: 10th Anniversary Edition}}<ref>Simulator Central ('Official') title: [http://www.simulatorcentral.com/index.php/trainz/all-trainz/trainz-10th-anniversary-collector-s-edition.html Trainz 10th Anniversary Collector's edition], accessdate=2015-0907</ref> {{anchor|TWB|WB}} |- |&nbsp;'''TWB'''&nbsp;<br />&nbsp;or '''WB'''&nbsp;||&nbsp;Trainz Wikibook&nbsp;||&nbsp;''lit. '''{{TL|Trainz|Trainz Wikibook}}'''''&mdash;this resource so many have taken time to put together for the Trainz societies. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |}<!-- careful! Table end ---> &nbsp; ===Ua_to_Zz=== {{anchor|U|V|W|X|Y|Z}} {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;'''unary'''<br />&nbsp;'''unary value'''&nbsp;||&nbsp;Math and computing term&nbsp;||&nbsp;A unary (lit. from ''Latin:'' un+ary), is a single term, or a parameter (variable) ''"consisting of, or affecting, a single element or component; monadic "''<ref>unary. Dictionary.com. The Free On-line Dictionary of Computing. Denis Howe. http://dictionary.reference.com/browse/unary (accessed: September 18, 2014).</ref> as opposed to binary, trinary, or quadary elements. Even {{TN|placeholder parameters}} in Trainz are always binary operators, a tag and a value. Pass parameters in Wikimarkup templates although placeholders or named parameters, are always unary--they have only the one part.<ref>Institute of Electrical and Electronics Engineers (IEEE): via Dictionary.com, "unary," in The Free On-line Dictionary of Computing. Source location: Denis Howe. http://dictionary.reference.com/browse/unary. Available: http://dictionary.reference.com. Accessed: September 18, 2014.</ref> |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp; |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|Trainz UTC|UTC}} |- |&nbsp;'''{{TL|UTC}}'''&nbsp;<br/>&nbsp;'''{{TL|Trainz UTC}}'''&nbsp;|| &nbsp;{{BL|'''Ultimate Trainz Collection'''}}&nbsp;||&nbsp;Trainz v1.5&nbsp;''general shorthand'' for the important version that solidified scripting in Trainz, and provided a well written collection of *.doc files about the Trainz data model (The 2nd {{TL|Content Creator's Guide}} or {{TG|CCG}}) and documented much other How-To which with further development later in TRS2004 gave '''Trainz interactive railcars and industries'''. |- |&nbsp;''' '''&nbsp;||&nbsp; &nbsp;||&nbsp;{{anchor|whitespace|whitespaces|whitespace character}} |- |&nbsp;'''whitespace'''<br/>&nbsp;'''whitespace character'''&nbsp;||&nbsp; computer codes &nbsp;||&nbsp;'''whitespace characters''' are defined in computer science as binary values representing the 'end of line' (or 'newline') code, the 'tab' and 'vertical-tab' codes, the 'carriage-return' or 'return' code, '''and ''most often'', the 'space' code'''.<br/> Note none of these mark a page when printed, and each moves the place the next character code is placed. |- |}<!---- Table ends Nested block comment starts here / Repeated key format is: / /|- /|}<xxx!---- Table ends /&nbsp; / /=== Section range === / {| class="wikitable" style="font-face:Times; font-size:9pt; " |- !width="13%"|Term !width="16%"|Meaning !width="70%"|Comments, clarifications, or notes |- | data1 |- | data2 |- | data... |} / /nested block comment ends next line ---> |- |}<!-- careful! OUTER Table end ---> ==Notes and Footnotes== ===Notes=== {{notelist}} ===Footnotes=== {{reflist}}{{void| {{ORP|alttitle1=Common Trainz Terms and Notations|sort= Notations|nourl=1|AM&C=1 | h=header |rh=Rheader | p=prev | n=next}} }}<!-- Void() ends --->{{FUN-bot|IT=1|cat1=Trainz references|sort= Notations|AM&C=1}} e83c2lfankc5wpfav2ge1wnwelle03m Flora of New York/Rosoideae 1 0 302958 4668495 4483047 2026-09-04T03:23:26Z Krok6kola 2720781 ([[c:GR|GR]]) [[c:COM:FR|File renamed]]: [[File:Waldsteinia fragarioides 01.JPG]] → [[File:Waldsteinia ternata 001.jpg]] [[c:COM:FR#FR3|Criterion 3]] (obvious error) · Species misidentification. The specimen featured in this image displays the large, broad, rounded yellow flower petals that tightly overlap to create a bowl shape, along with aggressively and deeply lobed, sharp wedge-like foliage. These are the diagnostic taxonomic keys of the Eurasian Waldsteinia ternata, completely contradic... 4668495 wikitext text/x-wiki {{../header | this = Rosales : Rosaceae : Rosoideae 1 : | this-ttxt = Ulmarieae, Rubeae, Colurieae, Sanguisorbeae | prev-link = Fabales | next-link = Rosoideae 2 | next-text = Rosales: Rosaceae: Rosoideae 2 }} ==Rosales introduction== {{:Flora of New York/txt |img= |cap= |The order '''{{wp|Rosales}}''' is part of the nitrogen-fixing clade in the fabids: {{cladex |label1=fabids |1={{cladex |1={{cladex |1=[[../Zygophyllales|Zygophyllales]] |2={{cladex |label1=<small>COM clade</small> |1={{cladex |1=[[../Celastrales|Celastrales]] |2={{cladex |1=[[../Malpighiales|Malpighiales]] |2=[[../Oxalidales|Oxalidales]] }} }} |label2=<small>nitrogen‑fixing&nbsp;clade&nbsp;</small> |2={{cladex |1=[[../Fabales|Fabales]] |2={{cladex |1=[[../Rosales|Rosales]] |2={{cladex |1=[[../Cucurbitales|Cucurbitales]] |2=[[../Fagales|Fagales]] }} }} }} }} }} }} }} }} ===Rosaceae introduction=== {{../Rosaceae-intro}} <!-- {{../Rosaceae-clades}} is the sandbox for {{../Rosaceae-intro}}--> ====Rosoideae introduction==== {{../txt |img= |cap= |The Rosaceae subfamily '''Rosoideae''' contains the following tribes: *Agrimonieae (''Acaena, Agrimonia, Poteridium, Poterium, Sanguisorba'') *Colurieae (''Fallugia, Geum, Sieversia, Waldsteinia'') *Potentilleae (''Alchemilla, Aphanes, Chamaerhodos, Comarum, Dasiphora, Drymocallis, Duchesnea, Fragaria, Horkelia, Horkeliella, Ivesia, Potentilla, Sibbaldia, Sibbaldiopsis'') *Roseae (''Rosa'') *Rubeae (''Rubus'') *Ulmarieae (''Filipendula'') }} ==Tribe Ulmarieae== ===''Filipendula''=== {{../txt |img=Filipendula rubra 2017-06-25 3209.jpg |cap=''Filipendula rubra'' |''Filipendula'' contains about ten Eurasian species and two North American species. Of these, one Midwestern and two Eurasian species have been found to have naturalized in New York. ''Filipendula rubra'' ('''queen of the prairie''') is the only North American native ''Filipendula'' found in New York State, where it is only known to be present in the wild as a garden escape.<ref>[http://floranorthamerica.org/Filipendula_rubra Ivan A. Schanzer (2020). Flora of North America, Volume 9. Page 25. Flora of North America Association. 5 Nov. 2020]</ref> It can be found on roadsides, ditches, thickets, and disturbed soils, but it has been less common than the Eurasian ''Filipendula ulmaria''.<ref>[https://newyork.plantatlas.usf.edu/Plant.aspx?id=2695 Werier, David, et al. (2023). ''Filipendula rubra'' in New York Flora Atlas. New York Flora Association, Albany, New York. 12 Dec. 2023.]</ref> }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Ulmarieae||Filipendula| }}<!-- ------------------------------------------------------------ --> {{../genus|Filipendula|Queen, Dropwort|948|3| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Filipendula rubra | au-abbr = (Hill) B.L.Rob. | au-full = Benjamin Lincoln Robinson (1864-1935). | au-pub = Rhodora 8(94):204. 1906. <!-- -- --> | syns = {{../sp-1|1768|Ulmaria rubra |Hill}} {{../sp-1|1770|Spiraea lobata |Gronov. ex Jacq.}} {{../sp-1|1906|'''Filipendula rubra''' |B.L.Rob.}} {{../sp-1|1836|Thecanisia angustifolia |Raf.}} {{../sp-1|1836|Thecanisia purpurea |Raf.}} {{../sp-1|1837|Thecanisia lobata |(Gronov.) Raf.}} {{../sp-1|1879|Filipendula lobata |(Gronov.) Maxim.}} {{../sp-1|1891|Spiraea rubra |(Hill) Britton}} {{../var1|1924|Filipendula lobata |(Gronov.) Maxim. |albiflora |Bergmans}} {{../var1|1924|Filipendula lobata |(Gronov.) Maxim. |venusta-magnifica |Bergmans}} <!-- -- --> | en1 = Queen-of-the-prairie | en2 = Prairie dropwort | en3 = Red queen-of-the-meadow | fr1 = Filipendule rouge <!-- -- --> | status = Introduced | from = US midwest | status1 = N. America native | status2 = Cultivated in NY | c-rank = 0 | nwi1 = FACW | habit0 = Perennial | habit1 = Herb-forb | light = Part shade | ny-rank = G4-G5 <!-- -- --> | nyfa = {{../nyfa|2695|X|Roadsides, thickets, ditches, and disturbed soils. Much less common than the closely related F. ulmaria.}} | usda = {{../usda|FIRU2|NX|}} | col-id = | gbif = | inat = | pow-id = 104799-2 | wfo-id = | vascan = 8748 | gobot = filipendula/rubra | its-id = 25170 | ars-id = 456822 | fna-i1 = | fna-i2 = Filipendula_rubra | tro-id = 27800864 | ipn-id = | lbj-id = FIRU2 | nse-id = Filipendula+rubra | bna-id = Filipendula%20rubra | map = Filipendula rubra nymap.svg | nyfa-co = <abbr title=" ">13 counties</abbr> | inat-co = <abbr title="About 25 counties">25 counties</abbr> | image1 = Filipendula rubra inflorescence.JPG|width1=120 }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Filipendula ulmaria | au-abbr = (L.) Maxim. | au-full = | au-pub = Trudy Imp. S.-Peterburgsk. Bot. Sada 6: 251 (1879) <!-- -- --> | syns = {{../sp-1|1753|Spiraea ulmaria |L.}} {{../sp-1|1819|Spiraea denudata |J.& C.Presl}} {{../for1|1822|Spiraea ulmaria |L. |tomentosa |Hayne)}} {{../sp-1|1838|Thecanisia ulmaria |(L.) Raf.}} {{../sp-1|1879|'''Filipendula ulmaria'''|Maxim.}} {{../var1|1879|Filipendula ulmaria |Maxim. |denudata |(J.Presl & C.Presl) Maxim.}} {{../sp-1|1889|Filipendula denudata |Fritsch}} {{../for1|1889|Spiraea ulmaria |L. |tomentosa |(Hayne) St.-Lag. (not validly publ.)}} {{../sp-1|1894|Ulmaria ulmaria |(L.) Barnhart (not validly publ.)}} {{../sp-1|1895|Thecanisia ulmaria |(L.) Raf. ex B.D.Jacks. (comb. not validly publ.)}} {{../ssp1|1909|Filipendula ulmaria |Maxim. |denudata |Hayek}} <!-- -- --> | en1 = Queen-of-the-meadow | en2 = Meadowsweet | en3 = Meadow dropwort | en4 = Elm queen-of-the-meadow | en5 = White queen-of-the-meadow | fr1 = Reine-des-prés <!-- -- --> | status = Introduced | from = temperate Eurasia | status1 = Potentially invasive | status2 = Note:<ref>[http://dnr.wi.gov/topic/invasives/fact/queenofthemeadow.html Current invasive species rule revisions propose to regulate ''Filipendula ulmaria'' as Restricted in Wisconsin.]</ref><ref>[https://nas.er.usgs.gov/queries/FactSheet.aspx?SpeciesID=3810 Pfingsten, I.A., D. Rose, 2023, ''Filipendula ulmaria'' (L.) Maxim.: U.S. Geological Survey, Nonindigenous Aquatic Species Database, Gainesville, FL, https://nas.er.usgs.gov/queries/FactSheet.aspx?SpeciesID=3810, Revised 8/30/2023, Accessed 12/16/2023]</ref> | imap = | ipa-us = 14017 4 | griisus = | ny-tier = | c-rank = | nwi1 = FAC | nwi2 = FACW | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = | ns-rank = <!-- -- --> | nyfa = {{../nyfa|2694|X|}} | usda = {{../usda|FIUL|XX|}} | col-id = | gbif = 2987999 <!-- Filipendula ulmaria (L.) Maxim. --> | inat = 63134-Filipendula-ulmaria | pow-id = 724943-1 <!-- Filipendula ulmaria (L.) Maxim. --> | wfo-id = | vascan = 8749 | gobot = filipendula/ulmaria | its-id = 25171 | ars-id = 17105 | fna-id = | tro-id = 27800269 | nse-id = | ipn-id = | map = Filipendula ulmaria nymap.svg | nyfa-co = <abbr title="About 21 counties in 2023">21 counties</abbr> | inat-co = <abbr title="About 16 counties in 2023">16 counties</abbr> | image1 = 20150811Filipendula ulmaria2.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Filipendula vulgaris | author = Moench <!-- -- --> | syns = {{../sp-1|1753|Spiraea filipendula |L.}} {{../sp-1|1768|Ulmaria filipendula |(L.) Hill}} {{../sp-1|1782|Filipendula hexapetala |Gilib. (opus utique oppr.)}} {{../sp-1|1794|'''Filipendula vulgaris'''|Moench}} {{../sp-1|1822|Spiraea vulgaris |(Moench) Gray (nom. superfl.)}} {{../var1|1824|Spiraea filipendula |L. |vulgaris |Cambess.}} {{../sp-1|1879|Filipendula hexapetala |Gilib. ''superfl''.}} {{../sp-1|1788|Ulmaria filipendula |(L.) Hill ex Focke}} {{../sp-1|1894|Filipendula filipendula |(L.) Voss (not validly publ.)}} {{../sp-1|1915|Ulmaria angustifolia |Rehder}} <!-- -- --> | en1 = Dropwort | en2 = Common queen-of-the-meadow | fr1 = Filipendule vulgaire | fr2 = Filipendule <!-- -- --> | status = Introduced | from = temperate Eurasia | status1 = Not naturalized <!-- -- --> | nyfa = {{../nyfa|2708|X|}} | usda = {{../usda|FIVU|XX|}} | col-id = | gbif = 2988069 | inat = 62020-Filipendula-vulgaris | pow-id = 724945-1 | wfo-id = | vascan = 8750 | gobot = filipendula/vulgaris | its-id = 25172 | ars-id = 104611 | fna-i1 = | fna-i2 = Filipendula_vulgaris | tro-id = 27800060 | nse-id = | ipn-id = | map = Filipendula vulgaris nymap.svg | nyfa-co = <abbr title="Madison, Chemung (1938)">Madison, Chemung (1938)</abbr> | inat-co = <abbr title="No research-grade observations, a few cultivated">No RG observations</abbr> | image1 = Rosaceae - Filipendula vulgaris-1 (8303629717).jpg }}<!-- ------------------------------------------------------------ --> {{../end table }}<!-- ------------------------------------------------------------ --> ==Tribe Rubeae== The Rubeae include the genera ''Rubus'' and ''Dalibarda'' (which is here treated as a monospecific subgenus of ''Rubus''. ===''Rubus''=== ====''Rubus'' subg. ''Chamaemorus''==== {{:Flora of New York/txt |img=Rosaceae- Rubus chamaemorus (Cloudberry) 2.jpg |cap=''Rubus chamaemorus'' |The native status of '''cloudberry''' (''Rubus chamaemorus'') in New York could be subject to question. It is a circumboreal bramble, native to all provinces of Canada and present in the states of Alaska, Minnesota, New Hampshire, and Maine. However, the only vouchered report of cloudberry growing outside of cultivation in New York was from Montauk in Suffolk County, Long Island in 1908.<ref>[http://www.torreybotanical.org/wp-content/uploads/2013/02/Juncus_diffusissimus_NY.pdf Eric E. Lamont and Stephen M. Young (2005) "''Juncus diffusissimus'', an addition to the flora of New York, with notes on its recent spread in the United States." ''The Journal of the Torrey Botanical Society'', '''132(4)''': 635-643. 2005.]</ref><ref>[http://libotanical.org/newsletters/0401.pdf H. K. Svenson (1936) "The Early Vegetation of Long Island," ''Brooklyn Botanical Garden Record'' 25: 207-227. Republished in the ''Long Island Botanical Society Newsletter'', p.2, 1994.]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Chamaemorus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Cloudberry|843|30|subg=Chamaemorus| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus chamaemorus | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus chamaemorus'''|L.}} {{../sp-1|1906|Chamaemorus anglica |Greene}} {{../sp-1|1906|Chamaemorus norwegica |Greene}} {{../sp-1|1920|Chamaemorus chamaemorus|(L.) House (not validly publ.)}} <!-- -- --> | en1 = Cloudberry | en2 = Baked-apple-berry | en3 = Salmon-berry | en4 = Malka | fr1 = Chicouté | fr2 = Ronce petit-mûrier | fr3 = Mûres blanches <!-- -- --> | status = Native | status1 = No recent reports | status2 = Impersistent | c-rank = 10 | nwi1 = FACW | habit0 = Perennial | habit1 = Herb-subshrub | light = Sun <!-- -- --> | nyfa = {{../nyfa|6526|Z|Suffolk county only}} | usda = {{../usda|RUCH|NN|}} | vascan = 8928 | gobot = rubus/chamaemorus | its-id = 24850 | ars-id = 32286 | tro-id = 27800175 | ipn-id = | lbj-id = RUCH | nse-id = | bna-id = | map = Rubus chamaemorus nymap.svg | nyfa-co = <abbr title="Herbarium specimens from Suffolk (1908) only as of 1/4/2024">Suffolk (1908)</abbr> | inat-co = <abbr title="Research-grade observations from 0 counties as of 1/4/2024">No NY observations</abbr> | image1 = Hjortron.png }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Dalibarda''==== {{../txt |img=Rubus repens 15-p.bot-dali.repens-6.jpg |cap=''Rubus repens'' |''Dalibarda'' has been treated as a {{fny-gloss|monospecific}} genus, but the Flora of North America Editorial Committee (2014)<ref>[http://www.tropicos.org/Name/50334377?tab=references Flora of North America Editorial Committee. 2014. Magnoliophyta: Picramniaceae to Rosaceae. Fl. N. Amer. 9: i–xxiv, 1–713. Listed in Tropicos.org. Missouri Botanical Garden. 05 Jul 2015 (http://www.tropicos.org/Name/50334377)]</ref> treats it as a subgenus of ''Rubus''. Its leaves superficially resemble those of violets, but its flowers and fruit are clearly ''rubusesque''. There continues to be disagreement about whether ''R. dalibarda'' or ''R. repens'' should be the accepted species name. ''Rubus repens'' was found to be invalid but has been proposed for conservation as the accepted name.<ref>[https://onlinelibrary.wiley.com/doi/10.1002/tax.12999 Turner, I.M. (2023), (2980) Proposal to conserve the name Rubus repens (L.) Kuntze against R. repens Weston (Rosaceae). TAXON, 72: 942-942. https://doi.org/10.1002/tax.12999]</ref> Subgenus ''Dalibarda'' does appear to form a strongly-supported clade with the rest of ''Rubus'' and may nest within ''Rubus''.<ref>[https://bsapubs.onlinelibrary.wiley.com/doi/10.2307/2656957 Alice, L.A. and Campbell, C.S. (1999), Phylogeny of Rubus (rosaceae) based on nuclear ribosomal DNA internal transcribed spacer region sequences . Am. J. Bot., 86: 81-97. https://doi.org/10.2307/2656957]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Dalibarda| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewdrop|685|1|subg=Dalibarda }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus repens | au-abbr = (L.) Kuntze | au-full = | au-pub = Revis. Gen. Pl. 1: 223. 1891. <!-- -- --> | syns = {{../sp-1|1753|Dalibarda repens |L.}} {{../sp-1|1762|Rubus dalibarda |L. (nom. superfl.)}} {{../sp-1|1770|Rubus repens |Weston (nom. rej. prop.)}} {{../sp-1|1803|Dalibarda violioides |Michx.}} {{../sp-1|1806|Dalibarda cordata |Stephan (nom. superfl.)}} {{../for1|1879|Rubus dalibarda |L. |caespitosus |Kuntze}} {{../for1|1879|Rubus dalibarda |L. |laciniostipulatus |Kuntze}} {{../sp-1|1891|'''Rubus repens''' |(L.) Kuntze (nom. cons. prop.)}} <!-- -- --> | en1 = Dewdrop | en2 = Robin runaway | en3 = False-violet | en4 = Star-violet | fr1 = Dalibarde rampante <!-- -- --> | status = Native | status1 = Likely secure | c-rank = 9 | nwi1 = FAC | habit0 = Perennial | habit1 = Herb-forb | light = Part shade - shade <!-- -- --> | nyfa = {{../nyfa|6508|4|Rubus repens (L.) Kuntze - dewdrop - Cool hardwood and coniferous forests as well as hummocks in forested swamps. Predominately in shaded habitats with wet-mesic soils.}} | usda = {{../usda|DARE|NN|Dalibarda repens L.}} | col-id = 4TJW9 <!-- Rubus dalibarda L. 2023 --> | gbif = 2999946 <!-- Dalibarda repens L. (based on COL 2023) --> | pow-id = 223505-2 <!-- Rubus repens (L.) Kuntze --> | wfo-id = 0000988537 <!-- Rubus repens (L.) Kuntze --> | vascan = 8727 <!-- Rubus repens (L.) Kuntze --> | gobot = rubus/dalibarda <!-- Rubus dalibarda L. 2023 --> | inat = 924430-Rubus-repens | its-id = 520495 <!-- Rubus repens (L.) Kuntze --> | ars-id = 470540 <!-- Rubus repens (L.) Kuntze --> | fna-i1 = 250100445 <!-- Rubus repens (L.) Kuntze --> | fna-i2 = Rubus_repens | tro-id = 50334377 <!-- Rubus repens (L.) Kuntze --> | ipn-id = | lbj-id = DARE <!-- Dalibarda repens L. 2023 --> | nse-id = Rubus+repens <!-- Rubus repens (L.) Kuntze --> | bna-id = Rubus%20dalibarda | map = nymap.svg | image1 = Dalibarda repens 4284 (2x3).JPG }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Anoplobatus''==== {{../txt |img=Rubus odoratus G4.JPG |cap=''Rubus odoratus''<br>purple-flowering raspberry |The thornless ''Anoplobatus'' subgenus contains ''Rubus odoratus''. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Anoplobatus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Raspberry|843|30|subg=Anoplobatus }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus odoratus | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus odoratus'''|L.}} {{../var1|1892|Rubus odoratus |L. |columbianus |Millsp.}} {{../sp-1|1903|Rubacer odoratum |Rydb.}} {{../sp-1|1903|Rubacer columbianum |Rydb.}} {{../sp-1|1906|Bossekia odorata |Greene}} {{../sp-1|1912|Bossekia columbiana |A.Heller}} <!-- -- --> | en1 = Purple-flowering raspberry | en2 = Purple-flowered raspberry | en3 = Virginia raspberry | en4 = Thimbleberry | fr1 = Ronce odorante | fr2 = Framboisier sauvage | fr3 = Calottes <!-- -- --> | status = Native | status1 = Secure | c-rank = 7 | nwi1 = unranked | habit0 = Perennial | habit1 = Subshrub | light = Sun - shade <!-- -- --> | nyfa = {{../nyfa|2759|5|Forest edges, talus slopes, mesic rocky outcrops, disturbed soils in forests, and thickets. Generally in wet-mesic or sometimes mesic soils and often in at least partly shaded habitats.}} | usda = {{../usda|RUOD|NN|}} | vascan = 8941 | gobot = rubus/odoratus | its-id = 24997 | ars-id = 32402 | fna-id = 250100440 | tro-id = 27801320 | ipn-id = | lbj-id = RUOD | nse-id = Rubus+odoratus | bna-id = Rubus%20odoratus | map = <!-- auto --> | image1 = Rubus-odoratus-flower.JPG }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Idaeobatus''==== {{../txt |img=Fertődi zenit málna.jpg |cap=''Rubus idaeus''<br>red raspberry |The ''Rubus'' subgenus ''Idaeobatus'' species are generally referred to as '''raspberries'''. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Idaeobatus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Raspberry|843|30|subg=Idaeobatus| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus idaeus | author = L. | ssp0 = strigosus | ssp-au = (Michx.) Focke <!-- -- --> | syns = {{../sp-1|1803|Rubus strigosus |Michx.}} {{../var1|1872|Rubus idaeus |L. |strigosus |(Michx.) Maxim.}} {{../sp-1|1906|Batidaea acalyphacea |Greene}} {{../sp-1|1906|Batidaea strigosa |(Michx.) Greene}} {{../sp-1|1907|Rubus egglestonii |Blanch.}} {{../ssp1|1911|'''Rubus idaeus''' |L. |'''strigosus'''|(Michx.) Focke}} {{../sp-1|1912|Batidaea egglestonii |(Blanch.) A.Heller}} {{../sp-1|1913|Rubus acalyphaceus |(Greene) Rydb.}} {{../sp-1|1913|Rubus carolinianus |Rydb.}} {{../sp-1|1913|Rubus arizonicus |(Greene) Rydb.}} {{../sp-1|1913|Rubus subarcticus |(Greene) Rydb.}} {{../sp-1|1945|Rubus aliceae |L.H.Bailey}} <!-- -- --> | en1 = American red raspberry | en2 = North American red raspberry | en3 = Grayleaf red raspberry | fr1 = Framboisier sauvage <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = FACU | nwi2 = FAC | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S5, G5-T5 <!-- -- --> | nyfa = {{../nyfa|2755|5|as Rubus idaeus ssp. strigosus}} | usda = {{../usda|RUIDS2|NN|as Rubus idaeus ssp. strigosus}} | col-id = BNZCD | gbif = 2993119 | pow-id = 223189-2 | wfo-id = 0001006872 | inat = | vascan = 8934 | gobot = rubus/idaeus | its-id = 524636 | ars-id = 467362 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Texter Mountain Nature Preserve (Revisited) (13) (9387620458).jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus idaeus | author = L. | ssp0 = idaeus <!-- -- --> | syns = {{../sp-1|1753|'''Rubus idaeus''' |L.}} {{../sp-1|1770|Rubus cannabifolius |Weston}} {{../sp-1|1770|Rubus elegantissimus |Weston}} {{../var1|1770|Rubus idaeus |L. |albus |Weston}} {{../var1|1770|Rubus idaeus |L. |biflorus |Weston}} {{../var1|1770|Rubus idaeus |L. |laevis |Weston}} {{../sp-1|1789|Rubus daeus ruber |Aiton}} {{../sp-1|1796|Rubus fragrans |Salisb.}} {{../sp-1|1811|Rubus obtusifolius |Willd.}} {{../sp-1|1915|Batidaea idaea |(L.) Nieuwl.}} {{../sp-1|1915|Batidaea vulgaris |Nieuwl.}} <!-- -- --> | en1 = European red raspberry | en2 = Framboisier <!-- -- --> | status = Introduced | from = Eurasia | status1 = | c-rank = | nwi1 = FACU | nwi2 = FAC | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = SNA, G5-T5 <!-- -- --> | nyfa = {{../nyfa|2746|X|}} | usda = {{../usda|RUIDI|XX|}} | col-id = | gbif = | pow-id = 77232556-1 | wfo-id = 0001006864 | inat = | vascan = | gobot = rubus/idaeus | its-id = 524635 | ars-id = 32348 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Fertődi zamatos málna 2.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus occidentalis | au-abbr = L. | au-full = | au-pub = Sp. Pl. 493 (1753) <!-- -- --> | syns = {{../sp-1|1753|'''Rubus occidentalis''' |L.}} {{../sp-1|1794|Rubus tomentosus |Borkh. (nom. superfl.)}} {{../var1|1828|Rubus idaeus |L. |americanus |Torr.}} {{../var1|1839|Rubus occidentalis |L. |incisus |Schltdl.}} {{../ssp1|1874|Rubus occidentalis |L. |euoccidentalis |Focke}} {{../var1|1890|Rubus occidentalis |L. |japonicus |Miyabe}} {{../var1|1891|Rubus occidentalis |L. |grandiflorus |Focke}} {{../var1|1898|Rubus fruticosus |L. |tomentosus |Fiori}} {{../var1|1902|Rubus occidentalis |L. |pallidus |L.H.Bailey}} {{../var1|1905|Rubus occidentalis |L. |flavobaccus |Blanch.}} {{../sp-1|1906|Melanobatus occidentalis |(L.) Greene}} <!-- -- --> | en1 = Black raspberry | en2 = Black cap | en3 = Thimbleberry | fr1 = Framboisier de Virginie <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S5, G5 <!-- -- --> | nyfa = {{../nyfa|2751|5|}} | usda = {{../usda|RUOC|NN|}} | col-id = 4TL3H | gbif = | pow-id = 223350-2 | wfo-id = | inat = | vascan = 8940 | gobot = rubus/occidentalis | its-id = 24854 | ars-id = 32401 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = Rubus%20occidentalis | image1 = 2018-06-15 10 27 01 Black raspberries ripening along a walking path in the Franklin Farm section of Oak Hill, Fairfax County, Virginia.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus × neglectus | author = Peck (pro sp.) <!-- -- --> | hp1 = Rubus occidentalis | hp2 = Rubus idaeus ssp. strigosus <!-- -- --> | en1 = Purple wild raspberry <!-- -- --> | status = Native | status1 = Not assessed | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Vine, Shrub | light = | chro-no = | ny-rank = SNA, GNA <!-- -- --> | nyfa = {{../nyfa|2702|2?|}} | usda = {{../usda|RUIDS2|NN|as Rubus idaeus ssp. strigosus}} | col-id = | gbif = | pow-id = | wfo-id = | inat = | vascan = | gobot = | its-id = 24989 | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Nidda Fauerbach Rubus idaeus ws.png }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus phoenicolasius | author = Maxim. <!-- -- --> | syns = {{../sp-1|1872|Rubus phoenicolasius |Maxim.}} <!-- -- --> | en1 = Wineberry | en2 = Japanese wineberry | en3 = Wine raspberry | status = Introduced | from = temperate Asia | status1 = Highly invasive | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyis = 86%<ref>{{../nyis-ref|Rubus phoenicolasius|High|86|}}</ref> | nyfa = {{../nyfa|2720|X|}} | usda = {{../usda|RUPH|X0|}} | ref-21 = CP-4<ref name=CP4>{{../ref|CP4}}</ref> NE-4<ref name=NE4>{{../ref|NE4}}</ref> | col-id = | gbif = | pow-id = | wfo-id = | inat = | vascan = | gobot = rubus/phoenicolasius | its-id = 25017 | ars-id = 32416 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = Rubus phoenicolasius nymap.svg | image1 = Japanse wijnbes rijpe vruchten.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus illecebrosus | author = Focke <!-- -- --> | syns = {{../sp-1|1899|Rubus illecebrosus|Focke}} <!-- -- --> | en1 = Strawberry raspberry | en2 = Charming raspberry | fr1 = Framboisier fraisier <!-- -- --> | status = Introduced | from = eastern Asia | status1 = Potentially invasive | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2785|X|}} | usda = {{../usda|RUIL|XX|}} | ref-21 = [http://www.invasive.org/browse/subinfo.cfm?sub=11585 IO] | col-id = | gbif = | pow-id = | wfo-id = | inat = | vascan = | gobot = rubus/illecebrosus | its-id = 504856 | ars-id = 32354 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = | image1 = Rubus illecebrosus - fruit (aka).jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus parvifolius | au-abbr = L. | au-full = | au-pub = <!-- -- --> | syns = {{../sp-1|1753|Rubus parvifolius|L.}} {{../sp-1|1784|Rubus triphyllus|Thunb.}} {{../sp-1|1833|Rubus purpureus|Bunge}} <!-- -- --> | en-vns = {{../vn1|Japanese raspberry|2021 NYFA}} {{../vn1|Small-leaf bramble|2021 iNaturalist}} {{../vn1|Trailing raspberry|1961 Webster's third new international dictionary.}} | fr-vns = {{../vn1||}} {{../vn1||}} {{../vn1||}} <!-- -- --> | status = Introduced | from = Asia | from1 = Australia | status1 = Potentially invasive | status2 = Naturalized | c-rank = X | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = SNA <!-- -- --> | nyfa = {{../nyfa|7605|Xn|}} | usda = {{../usda|||}} | col-id = | gbif = | pow-id = | wfo-id = | inat = 51645-Rubus-parvifolius | vascan = | gobot = rubus/parvifolius | its-id = | ars-id = 32409 | fna-id = | fna-i1 = | fna-i2 = | tro-id = 27803708 | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | cos = NYFA: <abbr title="Onondaga (2016)">1 county</abbr> | image1 = Rubus parvifolius 0907.JPG }}<!-- ------------------------------------------------------------ --> {{../end table }}<!-- ------------------------------------------------------------ --> ====''Rubus'' subg. ''Rubus''==== Subgenus ''Rubus'' contains the blackberries and dewberries. =====''Rubus'' subg. ''Rubus'' sect. ''Allegheniensis''===== {{../txt |img=2016-07-25 16 21 11 Blackberries along the Blue Ridge Parkway in Deep Gap, Yancey County, North Carolina.jpg |cap=''Rubus allegheniensis'' |''Rubus'' L. sect. '''''Allegheniensis''''' contains ''Rubus allegheniensis'', ''R. alumnus'', and ''R. pennus''.<ref>[https://npgsweb.ars-grin.gov/gringlobal/taxon/taxonomyspecieslist?id=18622&type=section ''Rubus'' L. sect. ''Allegheniensis'' in USDA-ARS, GRIN-Global, U.S. National Plant Germplasm System. 23 September 2023]</ref> Of these, only ''R. allegheniensis'' is listed for New York State. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Allegheniensis| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Allegheniensis| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus allegheniensis | author = Porter <!-- -- --> | syns = {{../var1|1890|Rubus villosus |Aiton not Thunb. |montanus |Porter}} {{../sp-1|1894|Rubus montanus |(Porter) Porter (later homonym)}} {{../sp-1|1896|'''Rubus allegheniensis'''|Porter}} {{../sp-1|1906|Rubus pergratus |Blanch.}} {{../sp-1|1906|Rubus amnicola |Blanch.}} {{../sp-1|1945|Rubus avipes |L.H.Bailey}} <!-- -- --> | en1 = Allegheny blackberry | en2 = Common blackberry | en3 = Highbush blackberry | fr1 = Ronce des Alléghanys | fr2 = Mûrier | fr3 = Ronce alléghanienne | status = Native | status1 = Secure | c-rank = 3 | nwi1 = FACU | habit0 = Perennial | habit1 = Shrub <!-- -- --> | nyfa = {{../nyfa|2747|5|}} | usda = {{../usda|RUAL|NN|}} | vascan = 8920 | gobot = rubus/allegheniensis | its-id = 24866 | ars-id = 32254 | fna-id = 242417156 | tro-id = 27801178 | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = Rubus allegheniensis NY-dist-map.png | image1 = Rubus allegheniensis NRCS-015.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Canadenses''===== {{../txt |img=Rubus canadensis (3813766870).jpg |cap=''Rubus canadensis'' |''Rubus'' L. sect. '''''Canadenses''''' contains ''Rubus canadensis'' and ''R. kennedyanus''.<ref>[https://npgsweb.ars-grin.gov/gringlobal/taxon/taxonomyspecieslist?id=18620&type=section ''Rubus'' L. sect. ''Canadenses'' in USDA-ARS, GRIN-Global, U.S. National Plant Germplasm System. 23 September 2023]</ref> Of these, only ''Rubus canadensis'' is listed for New York State. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Canadenses| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Canadenses| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus canadensis | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus canadensis''' |L.}} {{../sp-1|1891|Rubus millspaughii |Britton}} {{../sp-1|1895|Selnorition canadensis |(L.) Raf. ex B.D.Jacks.}} {{../sp-1|1901|Rubus randii |(L.H.Bailey) Rydb.}} {{../sp-1|1931|Rubus kennedyanus |Fernald}} {{../sp-1|1932|Rubus montensis |L.H.Bailey}} {{../sp-1|1944|Rubus acridens |L.H.Bailey}} {{../sp-1|1944|Rubus ulterior |L.H.Bailey}} {{../sp-1|1947|Rubus besseyi |L.H.Bailey}} <!-- -- --> | en1 = Smooth blackberry | en2 = Smooth bramble | en3 = Thornless blackberry | status = Native | status1 = Vulnerable | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2777|3?|}} | usda = {{../usda|RUCA16|NN|}} | vascan = | gobot = Rubus/canadensis | its-id = | ars-id = 32281 | tro-id = 27801823 | map = | image1 = Rubus canadensis perrons black.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Arguti''===== {{../txt |img=Rubus pensilvanicus flowers.JPG |cap=''Rubus pensilvanicus'' |The Flora of North America Editorial Committee (2014) treats the '''Yankee blackberry''' (''R. frondosus''), '''Burnham's blackberry''' (''R. burnhamii''), and the '''prickly Florida blackberry''' (''R. argutus'') as being among the 72 synonyms of the '''Pennsylvania blackberry''' (''R. pensilvanicus'').<ref>[http://www.tropicos.org/Name/27801334?tab=synonyms ''Rubus pensilvanicus'' Poir. at Tropicos.org. Missouri Botanical Garden. 04 Jul 2015 <http://www.tropicos.org/Name/27801334>]</ref><ref>[http://data.canadensys.net/vascan/taxon/8944 ''Rubus pensilvanicus'' Poir. at ''Canadensys'', VASCAN last updated on 2015-06-29]</ref> ITIS also lists '''Rydberg's blackberry''' (''R. rydbergianus''), along with the other three, as a synonym of (''R. pensilvanicus'').<ref>[http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=504874 ''Rubus pensilvanicus'' Poir. at ''Integrated Taxonomic Information System'' (ITIS) (http://www.itis.gov). 04 Jul 2015]</ref> This leaves sect. ''Arguti'' equivalent to ''Rubus pensilvanicus'' itself. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Arguti| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Arguti| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus pensilvanicus | au-abbr = Poir. | au-full = | au-pub = J.B.A.M.de Lamarck, Encycl. 6: 246 (1804) <!-- -- --> | syns = {{../sp-1|1804|'''Rubus pensilvanicus'''|Poir.}} {{../sp-1|1822|Rubus argutus |Link}} {{../sp-1|1824|Rubus frondosus |Bigelow}} {{../sp-1|1913|Rubus brainerdii |Rydb.}} {{../sp-1|1932|Rubus abactus |L.H.Bailey}} {{../sp-1|1933|Rubus penetrans |L.H.Bailey}} {{../sp-1|1945|Rubus barbarus |L.H.Bailey}} {{../sp-1|1945|Rubus bellobatus |L.H.Bailey}} {{../sp-1|1945|Rubus blakei |L.H.Bailey}} {{../sp-1|1945|Rubus burnhamii |L.H.Bailey}} {{../sp-1|1945|Rubus rydbergianus |L.H.Bailey}} <!-- -- --> | en1 = Pennsylvania blackberry | en2 = Pennsylvania raspberry | fr1 = Ronce de Pennsylvanie <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2749|5|}} | usda = {{../usda|RUPE3|NN|}} | col-id = 4TM7H <!-- Rubus × pensilvanicus Poir. --> | gbif = 2989061 <!-- Rubus ×pensilvanicus Poir. --> | pow-id = 30263954-2 <!-- Rubus pensilvanicus Poir. --> | wfo-id = 0001007097 <!-- Rubus pensilvanicus Poir. --> | inat = 78894-Rubus-pensilvanicus <!-- Rubus pensilvanicus --> | vascan = 8944 <!-- Rubus pensilvanicus Poiret --> | gobot = rubus/pensilvanicus | its-id = 504874 | ars-id = 104942 <!-- Rubus pensilvanicus Poir. --> | fna-i1 = 242417169 | fna-i2 = Rubus_pensilvanicus | tro-id = 27801334 | map = | image1 = Rubus pensilvanicus iNat 3654011.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Cuneifolii''===== {{../txt |img=Rubus cuneifolius NRCS-1.jpg |cap=''Rubus cuneifolius'' | }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Cuneifolii| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Cuneifolii| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus cuneifolius | au-abbr = Pursh | au-full = | au-pub = Fl. Amer. Sept. 1: 347 (1814) <!-- -- --> | syns = {{../sp-1|1788|Rubus parvifolius |Walter (sensu auct.)}} {{../sp-1|1814|'''Rubus cuneifolius'''|Pursh}} {{../var1|1925|Rubus cuneifolius |Pursh |angustior |L.H.Bailey}} {{../sp-1|1932|Rubus audax |L.H.Bailey}} {{../sp-1|1938|Rubus longii |Fernald}} {{../var1|1941|Rubus cuneifolius |Pursh |subellipticus |Fernald}} {{../sp-1|1943|Rubus chapmanii |L.H.Bailey}} {{../sp-1|1943|Rubus georgiensis |L.H.Bailey}} {{../sp-1|1943|Rubus humei |L.H.Bailey}} {{../sp-1|1943|Rubus randolphiorum |L.H.Bailey}} {{../sp-1|1943|Rubus probativus |L.H.Bailey}} {{../sp-1|1970|Rubus dixiensis |H.A.Davis, A.M.Fuller & T.Davis}} <!-- -- --> | en1 = Sand blackberry <!-- -- --> | status = Native | status1 = Endangered | status2 = No recent reports | c-rank = 10 | nwi1 = | habit0 = Perennial | habit1 = Shrub <!-- -- --> | nyfa = {{../nyfa|2758|1|}} | usda = {{../usda|RUCU|N0|Endangered in CT, NH, NY, PA}} | col-id = 4TJVP | gbif = 2996841 | inat = 128854-Rubus-cuneifolius | pow-id = 30201781-2 | wfo-id = 0001006778 | vascan = | gobot = | its-id = 24905 | ars-id = 32304 | map = Rubus cuneifolius NY-dist-map.png | nyfa-co = <abbr title="Nassau (1907), Richmond (1868-90), Suffolk">3 counties</abbr> | inat-co = <abbr title="Nassau (2020), Suffolk (2023)">2 counties</abbr> | image1 = Sand-Blackberry-flower (5622475257) (3x4).gif }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Setosi''===== {{../txt |img= |cap= |The Flora of North America Editorial Committee (2014) treats both the '''Bristly Oswego blackberry''' (''R. dissimilis'') and the '''Vermont blackberry''' (''R. vermontanus'') as being among the 40 synonyms of the '''Bristly blackberry''' (''R. setosus'').<ref>[http://www.tropicos.org/Name/27801373?tab=synonyms ''Rubus setosus'' Bigelow at Tropicos.org. Missouri Botanical Garden. 04 Jul 2015]</ref><ref>[http://data.canadensys.net/vascan/taxon/8947 ''Rubus setosus'' Bigelow at ''Canadensys'', VASCAN last updated on 2015-06-29]</ref> }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Setosi| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Setosi| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus setosus | au-abbr = Bigelow | au-full = | au-pub = Fl. Boston.: 198 (1824) <!-- -- --> | syns = {{../sp-1|1824|'''Rubus setosus'''|Bigelow}} {{../sp-1|1901|Rubus nigricans |Rydb. (nom. illeg.)}} {{../sp-1|1904|Rubus vermontanus |Blanch.}} {{../var1|1904|Rubus vermontanus |Blanch. |viridifolius |Blanch.}} {{../sp-1|1906|Rubus groutianus |Blanch.}} {{../sp-1|1907|Rubus semisetosus |Blanch.}} {{../sp-1|1932|Rubus wheeleri |L.H.Bailey}} {{../sp-1|1941|Rubus dissimilis |L.H.Bailey}} {{../sp-1|1941|Rubus lawrencei |L.H.Bailey}} {{../sp-1|1947|Rubus beatus |L.H.Bailey}} {{../sp-1|1947|Rubus condignus |L.H.Bailey}} {{../sp-1|1947|Rubus viridifrons |L.H.Bailey}} <!-- -- --> | en1 = Bristly blackberry | en2 = Setose blackberry | en3 = Small bristleberry | en4 = Bristly raspberry | fr1 = Ronce sétuleuse <!-- -- --> | status = Native | status1 = Likely secure | c-rank = 2 | nwi1 = FACW | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S4 | ns-rank = <!-- -- --> | nyfa = {{../nyfa|6536|4|}} | usda = {{../usda|RUSE|NN|}} | col-id = 4TM7S <!-- Rubus × setosus Bigelow --> | gbif = 7769228 <!-- Rubus ×setosus Bigelow --> | inat = 168165-Rubus-setosus | pow-id = 740337-1 <!-- Rubus setosus Bigelow --> | wfo-id = 0001007245 <!-- Rubus setosus Bigelow --> | vascan = 8947 | gobot = rubus/setosus | its-id = 25046 | ars-id = 104974 | fna-id = 250100446 | tro-id = 27801373 | map = | image1 = Rubus setosus as Rubus nigricans BB-1913.png }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Rubus''===== {{../txt |img=Rubus laciniatus 06.jpg |cap=''Rubus laciniatus'' |'''Sect. ''Rubus''''' contains somewhat invasive Old World species of ''Rubus'' subg. ''Rubus''. The primary species of this section in New York State is ''Rubus laciniatus'' ('''cutleaf blackberry'''). The rare-in-NY but possibly naturalizing and invasive '''Himalayan blackberry''' (''Rubus bifrons'' and/or ''Rubus armeniacus''), listed in the New York Flora Atlas only in Bronx and Staten Island (2008), are treated as a single species (''R. bifrons'') by the Flora of North America. However in Eurasia, they appear to be two distinct species. iNaturalist allows both species, following Kew's POWO, and both have a significant number of research-grade observations in North America. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Rubus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Rubus|subsect=Hiemales }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus laciniatus | au-abbr = Willd. | au-full = Willdenow | au-pub = | author = <!-- -- --> | syns = {{../sp-1|1806|'''Rubus laciniatus'''|Willd.}} {{../var1|1822|Rubus corylifolius |SM.? |laciniatus |(Willd.) Wallr.}} {{../sp-1|1858|'''Rubus nemoralis''' |P.J.Müll. (POWO accepted name 2023)}} {{../var1|1893|Rubus vulgaris |P.J.Müll.|laciniatus |(Weston) Dippel}} {{../var1|1902|Rubus bifrons |Vest |laciniatus |(Willd.) Murr}} {{../var1|1909|Rubus bifrons |Vest |laciniatus |(Weston) Dalla Torre & Sarnth.}} {{../for1|1914|Rubus vulgaris |P.J.Müll.|laciniatus |(Weston) Frid.}} {{../for1|2014|Rubus nemoralis |P.J.Müll.|laciniatus |(Willd.) A.Beek}} <!-- -- --> | en1 = Cutleaf blackberry | en2 = Cut-leaved blackberry | en3 = Evergreen blackberry | en4 = Cutleaf bramble | fr1 = Ronce laciniée <!-- -- --> | status = Introduced | status1 = Moderately invasive <!-- -- --> | nyis = 63%<ref>{{../nyis-ref|Rubus laciniatus|Moderate|63|all}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|6531|X|Cayu}} | usda = {{../usda|RULA|XX}} | col-id = 4TKMN <!-- Rubus laciniatus Willd. --> | gbif = 2992543 <!-- Rubus laciniatus Willd. --> | inat = 78891-Rubus-laciniatus | pow-id = 738594-1 <!-- Rubus nemoralis P.J.Müll. Flora 41: 139 (1858) --> | wfo-id = 0000984132 <!-- Rubus laciniatus Willd. --> | vascan = 8936 <!-- Rubus laciniatus Willdenow --> | gobot = | its-id = | ars-id = 32364 | fna-i1 = 242417164 | fna-i2 = Rubus_laciniatus | fna-id = | map = | image1 = Rubus in Poznan Lawica.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus bifrons | author = Vest ex Tratt. <!-- -- --> | syns = {{../sp-1|1821|'''Rubus bifrons'''|Vest}} {{../sp-1|1823|Rubus bifrons |Vest ex Tratt.}} {{../sp-1|1825|Rubus linkianus |Ser.}} {{../var1|1846|Rubus nemorosus |Hayne ex Willd. |bifrons |(Vest) Bab.}} {{../sp-1|1874|Rubus armeniacus |Focke (per FNA 2023)}} {{../sp-1|auct|Rubus procerus |non P.J.Müll. ex Genev}} {{../var1|1898|Rubus fruticosus |L. |bifrons |(Vest) Fiori}} <!-- -- --> | en-vns = {{../vn1|Himalayan berry |2023 GBIF Rubus bifrons Vest ex Tratt.}} {{../vn1|Himalayan blackberry |2023 New York Flora Atlas, Rubus bifrons Vest}} {{../vn1|Himalayan giant blackberry |2023 VASCAN: GRIN}} {{../vn1|Twice-leaved blackberry |2023 VASCAN: M.Anions}} <!-- -- --> | fr1 = Ronce discolore | status = Introduced | from = Europe | status1 = Moderately invasive | status2 = No NY specimens | nyis = 57%<ref>{{../nyis-ref|Rubus bifrons|Moderate|57|L}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2754|X|none}} | usda = {{../usda|RUBI|X|Bronx (only)}} | col-id = | gbif = | inat = 168025-Rubus-bifrons | pow-id = 60449596-2 <!-- Rubus bifrons Vest (1821) --> | wfo-id = | vascan = 8925 | gobot = | its-id = 24891 | ars-id = 32274 | tro-id = 27801204 | map = nymap.svg | nyfa-co = <abbr title="Bronx, Richmond (2008)">2 counties</abbr> | inat-co = <abbr title="Nassau, Niagara, Queens, Suffolk">4 counties</abbr> | image1 = Rubus bifrons - Botanischer Garten, Frankfurt am Main - DSC02471.JPG }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus armeniacus | author = Focke | sn-of = Rubus bifrons | sn-o-au = Vest (per FNA 2023) <!-- -- --> | syns = {{../sp-1|1874|'''Rubus armeniacus'''|Focke}} {{../for1|1906|Rubus macrostemon |(Focke) Caflisch |armeniacus |(Focke) Sprib.}} {{../var1|1914|Rubus hedycarpus |Focke |armeniacus|Focke}} {{../sp-1|auct|Rubus discolor |non Weihe & Nees (1824)}} <!-- -- --> | en1 = Armenian Blackberry | en2 = Himalayan blackberry | en3 = Himalaya giant blackberry | status = Introduced | from = Caucasus | status1 = Moderately invasive | status2 = [http://www.invasive.org/weedcd/species/6338.htm IO] | nyis = 57%<ref>{{../nyis-ref|Rubus bifrons|Moderate|57|L}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|0|0|Not listed}} | usda = {{../usda|RUAR9|X|MA,NJ,PA,OH,ON}} | col-id = 4TJGY <!-- Rubus armeniacus Focke --> | gbif = | inat = | pow-id = 735202-1 <!-- Rubus armeniacus Focke --> | wfo-id = | vascan = | gobot = | its-id = 837296 | ars-id = 32263 | map = nymap.svg | nyfa-co = <abbr title="Follows Flora of North America by treating as a synonym of Rubus bifrons">Synonymized</abbr> | inat-co = <abbr title="A single "RG" observation in Washington County">1 county</abbr> | image1 = 20190624 Rubus armeniacus Drouwenerzand.jpeg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus ulmifolius | au-abbr = Schott | au-full = | au-pub = Erneuerte Vaterl. Blätt. Oesterr. Kaiserstaat 11: 42 (1818), nom. cons. prop. <!-- -- --> | syns = {{../sp-1|1788|Rubus inermis |Pourr.}} {{../sp-1|1809|Rubus inermis |Willd.}} {{../sp-1|1818|'''Rubus ulmifolius'''|Schott}} {{../sp-1|1824|Rubus discolor |Weihe & Nees}} {{../var1|1825|Rubus flagellaris |Willd. |inermis |Ser.}} {{../sp-1|1861|Rubus rusticanus |Mercier}} {{../sp-1|1869|Rubus bellidiflorus |hort. ex K.Koch}} {{../var1|1903|Rubus ulmifolius |Schott |genuinus |Sudre}} {{../ssp1|1903|Rubus ulmifolius |Schott |vulgatus |Sudre}} {{../var1|1905|Rubus ulmifolius |Schott |bellidiflorus |C. K. Schneid.}} {{../var1|1914|Rubus ulmifolius |Schott |inermis |(Ser.) Focke}} <!-- -- --> | en-vns = {{../vn1|Elmleaf blackberry|2021 iNaturalist}} {{../vn1|Elm-leaved blackberry|2021 NYFA}} | fr-vns = <!-- -- --> | status = Introduced | status1 = Potentially invasive | status2 = | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = <!-- -- --> | nyfa = {{../nyfa|7604|Xm|}} | usda = {{../usda|||}} | gbif = 2996929 <!-- Rubus ulmifolius Schott --> | inat = 78895-Rubus-ulmifolius | pow-id = 740982-1 <!-- Rubus ulmifolius Schott --> | wfo-id = 0000985000 <!-- Rubus ulmifolius Schott --> | vascan = | gobot = | its-id = | ars-id = 313548 <!-- Rubus ulmifolius Schott --> | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | nyfa-co = <abbr title="Bronx (2016)">Bronx (2016)</abbr> | inat-co = <abbr title="No Research Grade observations in New York State 2023">No RG observations</abbr> | image1 = Macchiabjörnbär (Rubus ulmifolius)-2975 - Flickr - Ragnhild & Neil Crawford.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Hispidi''===== {{../txt |img=Rubus-hispidus-Acadia.jpg |cap=''Rubus hispidus'' | }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Hispidi| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewberry|843|30|subg=Rubus|sect=Hispidi| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus hispidus | author = L. <!-- -- --> | syns = {{../sp-1|1753|Rubus hispidus |L.}} {{../var1|1923|Rubus hispidus |L. |blanchardianus |L.H.Bailey}} {{../sp-1|1824|Rubus sempervirens |Bigelow}} {{../var1|1940|Rubus hispidus |L. |obovalis |Fernald}} {{../sp-1|1941|Rubus blanchardianus |(L.H.Bailey) L.H.Bailey }} {{../sp-1|1941|Rubus fassettii |L.H.Bailey}} {{../var1|1941|Rubus hispidus |L. |cupulifer |L.H.Bailey}} {{../var1|1941|Rubus hispidus |L. |pervarius |L.H.Bailey}} <!-- -- --> | en1 = Bristly dewberry | en2 = Running blackberry | en3 = Swamp blackberry | en4 = Swamp dewberry | fr1 = Ronce hispide | status = Native | status1 = Secure | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2756|5|}} | usda = {{../usda|RUHI|NN|}} | vascan = 8931 | gobot = rubus/hispidus | its-id = 24943 | ars-id = 32340 | tro-id = 27801261 | map = | image1 = Bristly Dewberry, Swamp Dewberry (Rubus hispidus) (2864363698).jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Flagellares''===== {{../txt |img=Rubus flagellaris UGA1120430.jpg |cap=''Rubus flagellaris'' |The Flora of North America Editorial Committee (2014) treats both the '''Arundel blackberry''' (''R. arundelanus''), '''Enslen's blackberry''' (''R. enslenii''), and the '''Ithaca blackberry''' (''R. ithacanus'') as being among the 112 synonyms of the '''American dewberry''' (''R. flagellaris'').<ref>[http://www.tropicos.org/Name/27801236?tab=synonyms ''Rubus flagellaris'' Willd. at Tropicos.org. Missouri Botanical Garden. 04 Jul 2015 <http://www.tropicos.org/Name/27801236>]</ref><ref>[http://data.canadensys.net/vascan/taxon/8929 ''Rubus flagellaris'' Willd. at ''Canadensys'', VASCAN last updated on 2015-06-29]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Flagellares| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewberry|843|30|subg=Rubus|sect=Flagellares| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus flagellaris | au-abbr = Willd. | au-full = | au-pub = Enum. Pl. Hort. Berol. 2: 549 (1809) <!-- -- --> | syns = {{../sp-1|1809|'''Rubus flagellaris'''|Willd.}} {{../sp-1|1894|Rubus baileyanus |Britton}} {{../sp-1|1901|Rubus procumbens |Rydb}} {{../sp-1|1906|Rubus arenicola |Blanch.}} {{../sp-1|1906|Rubus geophilus |Blanch}} <!-- -- --> | en1 = American dewberry | en2 = Northern dewberry | en3 = Whiplash dewberry | en4 = Northern blackberry | fr1 = Ronce à flagelles | status = Native | status1 = Secure | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2757|5|}} | usda = {{../usda|RUFL|NN|}} | vascan = 8929 | gobot = rubus/flagellaris | its-id = 24921 | ars-id = 104958 | fna-id = 242417161 | tro-id = 27801236 | map = | image1 = Rubus flagellaris WFNY-093B.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Caesii''===== {{../txt |img=Rubus caesius SSN-150707-01.jpg |cap=''Rubus caesius''<br>Eurasian dewberry |The '''European dewberry''' has only been reported outside of cultivation in limited number of counties in North America, including only a few from New York. As of July 2015, it was not listed on New York State's ''Non-Native Plant Species Invasiveness Assessment''.<ref>[http://www.nyis.info/?action=israt ''Non-Native Plant Species Invasiveness Assessment'']</ref> However the ''Finger Lakes Native Plant Society'',<ref>[http://flnps.org/plants/rubus-caesius ''Rubus caesius: Finger Lakes Native Plant Society'' website 2015.]</ref> ''Cornell Plantations'', and Tompkins County<ref>[http://www.tompkinscountyny.gov/files/emc/educationalmaterial/Invasive_plants_2009list.pdf Tompkins County 2009 ''Regional Invasive Species List'']</ref> all list ''Rubus caesius'' as an invasive plant. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Caesii| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewberry|843|30|subg=Rubus|sect=Caesii| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus caesius | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus caesius''' |L.}} {{../sp-1|1782|Rubus caeruleus |Gilib.}} {{../var1|1829|Rubus polymorphus | |caesius |(L.) Spenn.}} {{../sp-1|1888|Rubus caesius intermedia |Schmidely}} {{../for1|1889|Rubus caesius |L. |eucaesius |Bouvet (not validly publ.)}} {{../sp-1|1891|Rubus caesius turkestanicus |Regel}} {{../ssp1|1894|Rubus fruticosus |L. |caesius |Bonnier & Layens}} {{../sp-1|1895|Selnorition cesius |(L.) Raf. ex B.D.Jacks.}} {{../var1|1898|Rubus fruticosus |L. |caesius |(L.) Fiori}} {{../sp-1|1937|Rubus psilophyllus |Nevski (nom. illeg.)}} <!-- -- --> | en1 = Eurasian dewberry | en2 = European dewberry | fr1 = Ronce bleue | fr2 = Ronce bleuâtre | status = Introduced | from = Eurasia | from1 = northern Africa | status1 = Moderately invasive | status2 = CP-3<ref name=CP3>{{../ref|CP3}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2753|X|Onon}} | usda = {{../usda|RUCA|XX|}} | ref-21 = CP-3<ref name=CP3>{{../ref|CP3}}</ref> | col-id = | gbif = 2995209 | inat = | pow-id = 735608-1 | wfo-id = | vascan = 8926 | gobot = 0 | its-id = 24898 | ars-id = 32278 | tro-id = 27800345 | bna-id = Rubus%20caesius | map = nymap.svg | cos = | nyfa-co = <abbr title="Madison (2017), Onondaga (1951), Tioga (1923), Tompkins, Yates (1973)">5 counties</abbr> | inat-co = <abbr title="Cayuga, Erie, Livingston, Madison, Monroe, Niagara, Oneida, Onondaga, Ontario, Tompkins, Westchester">11 counties</abbr> | image1 = Gervuoge001.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Cylactis''==== {{../txt |img=Rubus pubescens flower.jpg |cap=''Rubus pubescens''<br>dwarf raspberry | }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Cylactis| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Cylactis }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus pubescens | au-abbr = Raf. | au-full = | au-pub = Med. Repos. 2: 333 (1811) <!-- -- --> | syns = {{../sp-1|1803|Rubus saxatilis |Michx. (nom. illeg.)}} {{../sp-1|1811|'''Rubus pubescens''' |Raf.}} {{../sp-1|1819|Cylactis montana |Raf.}} {{../sp-1|1823|Rubus triflorus |Richardson}} {{../sp-1|1824|Rubus canadensis |Torr. (sensu auct.)}} {{../sp-1|1825|Rubus mucronatus |Ser.}} {{../sp-1|1893|Cylactis egopodioides |(Ser.) Raf. ex B.D.Jacks.}} {{../sp-1|1985|Cylactis pubescens |(Raf.) W.A.Weber}} <!-- -- --> | en1 = Dwarf raspberry | en2 = Dwarf red blackberry | en3 = Creeping red raspberry | en4 = Trailing red raspberry | en5 = Plumboy | fr1 = Ronce pubescente | fr2 = Catherinette <!-- -- --> | status = Native | status1 = Secure | c-rank = 8 | nwi1 = FACW | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S5 | ns-rank = <!-- -- --> | nyfa = {{../nyfa|6534|5|}} | usda = {{../usda|RUPUP2|NN|}} | col-id = | gbif = | inat = | pow-id = 284431-2 | wfo-id = | vascan = 8945 | gobot = rubus/pubescens | its-id = 25028 | ars-id = 32425 | fna-id = 250100444 | tro-id = 27800180 | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = | image1 = Rubus pubescens 1-eheep (5097346393).jpg }}<!-- ------------------------------------------------------------ --> {{../end table }}<!-- ------------------------------------------------------------ --> ==Tribe Colurieae== {{../txt |img=Waldsteinia fragarioides WFNY-099.jpg |cap=Appalachian barren-strawberry |The New York members of the Colurieae tribe include about ten species of the genus '''''Geum''''' (avens) and a single species of '''''Waldsteinia''''' (barren-strawberry). Sources are mixed as to whether ''Waldsteinia'' should be placed under the ''Geum'' genus itself. In either case, the "barren strawberries" of this tribe are more closely related to the ''Geums'' than to the other New York strawberries (''Fragaria'') or mock-strawberries (''Duchesnea''), which are placed in the Potentilleae tribe below. Protopopova (2022) concluded: Based on ''trnH-psbA'' plastid DNA analysis we believe that the taxonomic latter decision of combining ''Waldsteinia'' and ''Taihangia'' in one genus with ''Geum'' species does not reflect the complex structure of the obtained clade."<ref>M V Protopopova et al 2021 IOP Conf. Ser.: Earth Environ. Sci. 908 012027 [https://iopscience.iop.org/article/10.1088/1755-1315/908/1/012027 DOI 10.1088/1755-1315/908/1/012027]</ref> Protopopova (2023) concluded: "Based on the present phylogenetic structure of ''Geum'', ''Waldsteinia'', and other closely related taxa, we believe that excluding Waldsteinia together with ''Coluria'', ''Taihangia'', and ''Oncostylus'' from ''Geum'' s.l. is more justified than ‘lumping’ them together into a single polymorphic genus."<ref>Protopopova, Marina, Vasiliy Pavlichenko, Victor Chepinoga, Alexander Gnutikov, and Renat Adelshin. 2023. "Waldsteinia within Geum s.l. (Rosaceae): Main Aspects of Phylogeny and Speciation History" Diversity 15, no. 4: 479. https://doi.org/10.3390/d15040479</ref> }} ===''Waldsteinia''=== {{:Flora of New York/txt |img=Waldsteinia ternata 001.jpg |cap=''Waldsteinia fragarioides'' |The type species of the genus ''Waldsteinia'' was found to be nested within ''Geum'' by J. E. E. Smedmark in 2006.<ref>[http://floranorthamerica.org/Waldsteinia James B. Phipps (2020). FNA Volume 9. page 71. Flora of North America Association 5 Nov. 2020]</ref> Alan S. Weakley (2023) lists genus ''Waldsteinia'' as a "genus of about 7 species, perennial herbs, of disjunct areas in the Northern Hemisphere. Sometimes included in Geum. Protopopova, Pavlichenko, and Stepanov (2021) and Protopopova et al. (2023) supported its treatment as a genus separate from Geum."<!-- --><ref>[https://fsus.ncbg.unc.edu/main.php?pg=show-taxon-detail.php&lsid=urn:lsid:ncbg.unc.edu:taxon:{B11C4FFC-9504-4BD9-B2DA-3C57673422C8} Weakley, A.S., and Southeastern Flora Team (2023). Flora of the southeastern United States Web App. University of North Carolina Herbarium, North Carolina Botanical Garden, Chapel Hill, U.S.A. Accessed Dec 17, 2023.]</ref><!-- --><ref>[https://www.mdpi.com/1424-2818/15/4/479 Protopopova, Marina, Vasiliy Pavlichenko, Victor Chepinoga, Alexander Gnutikov, and Renat Adelshin (2023). "Waldsteinia within Geum s.l. (Rosaceae): Main Aspects of Phylogeny and Speciation History" Diversity 15, no. 4: 479.]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Colurieae||Waldsteinia| }}<!-- ------------------------------------ --> {{../genus|Waldsteinia|Barren strawberry|886|10| }}<!-- ------------------------------------ --> {{../taxon | species = Waldsteinia fragarioides | au-abbr = (Michx.) Tratt. | au-full = | au-pub = | ssp0 = fragarioides <!-- -- --> | syns = {{../sp-1|1803| Dalibarda fragarioides |Michx. |Fl. Bor.-Amer. 1: 300 (1803)}} {{../sp-1|1814| Rubus fragarioides |(Michx.) Dum.Cours. |Bot. Cult., ed. 2, 7: 293 (1814)}} {{../sp-1|1823| '''Waldsteinia fragarioides''' |(Michx.) Tratt. |Rosac. Monogr. 3: 107 (1823) acc. by POW, FNA}} {{../sp-1|1825| Comaropsis fragarioides |(Michx.) DC. ex Ser. |A.P.de Candolle, Prodr. 2: 555 (1825)}} {{../sp-1|1825| Dryas trifoliata |Pall. ex Ser. |A.P.de Candolle, Prodr. 2: 555 (1825)}} {{../sp-1|1840| Bossekia fragarioides |(Michx.) Raf |Autik. Bot.: 175 (1840)}} {{../sp-1|2006| '''Geum fragarioides''' |(Michx.) Smedmark |Bot. Jahrb. Syst. 126: 415 (2006) acc. by NYFA, VASCAN}} <!-- -- --> | en-vns = {{../vn1|Appalachian barren-strawberry|}} {{../vn1|Northern Barren Strawberry|}} {{../vn1|Dry strawberry|}} | fr-vns = {{../vn1|Waldsteinie faux-fraisier|}} <!-- -- --> | status = Native | status1 = Secure | c-rank = 7 | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S5, G5 <!-- -- --> | nyfa = {{../nyfa|2686|5|Waldsteinia fragarioides}} | usda = {{../usda|WAFR|NN|Waldsteinia fragarioides}} | col-id = 6KFTJ <!-- Geum fragarioides (Michx.) Smedmark --> | gbif = 5370015 <!-- Geum fragarioides (Michx.) Smedmark --> | kew-id = | pow-id = 1168107-2 <!-- Waldsteinia fragarioides (Michx.) Tratt. --> | wfo-id = | fsus = 3122 | vascan = 8990 <!-- Geum fragarioides (Michx.) Smedmark --> | gobot = geum/fragarioides | inat = 894458-Waldsteinia-fragarioides | its-id = 505735 <!-- Waldsteinia fragarioides --> | ars-id = 464850 <!-- Geum fragarioides (Michx.) Smedmark --> | fna-i1 = 242417492 <!-- Waldsteinia fragarioides (Michaux) Tratt. --> | fna-i2 = Waldsteinia_fragarioides | tro-id = 50326515 <!-- Waldsteinia fragarioides (Michaux) Tratt. --> | map = nymap.svg | image1 = Waldsteinia fragarioides kz01 (3x4).jpg }}<!-- ------------------------------------ --> {{../end table}} ===''Geum''=== {{../txt |img=Geum canadense 2533.jpg |cap=''Geum canadense'' |The New York Flora Atlas lists ten species of ''Geum'', including ''Geum fragarioides'', which is here treated above as ''Waldsteinia fragarioides''. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Colurieae||Geum| }}<!-- ================================================================================ --> {{../genus|Geum|Avens|886|10|author=L. }}<!-- ================================================================================ --> {{../taxon | species = Geum canadense | au-abbr = Jacq. | au-full = Jacquin, Nicolaus(Nicolaas) Joseph von (1727-1817) | au-pub = Hortus Botanicus Vindobonensis (Hort. Bot. Vindob.) <!-- -- --> | syns = {{../sp-1|1773|'''Geum canadense''' |Jacq.}} {{../sp-1|1775|Geum laciniosum |Murray}} {{../sp-1|1788|Geum carolinianum |Walter}} {{../sp-1|1791|Geum album |J.F.Gmel.}} {{../sp-1|1794|Caryophyllata alba |Moench}} {{../sp-1|1831|Geum glutinosum |Pursh ex Lehm.}} {{../sp-1|1832|Sieversia caroliniana |G.Don}} {{../sp-1|1913|Geum camporum |Rydb}} {{../var1|1922|Geum canadense |Jacq. |camporum |(Rydb.) Fernald & Weath.}} {{../var1|1922|Geum canadense |Jacq. |grimesii |Fernald & Weath.}} {{../var1|1922|Geum canadense |Jacq. |texanum |Fernald & Weath.}} {{../var1|1937|Geum canadense |Jacq. |brevipes |Fernald}} <!-- -- --> | en-vns = White avens <br> Canada avens | fr-vns = Benoîte du Canada <br> Benoîte blanche <!-- -- --> | status = Native | status1 = Secure | c-rank = 5 | nwi1 = FAC | nwi2 = FACU | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S5, G5 <!-- -- --> | nyfa = {{../nyfa|2684|5|}} | usda = {{../usda|GECA7|NN|}} | col-id = 3FY96 | gbif = 5369800 | inat = 85325-Geum-canadense | pow-id = 30065568-2 | wfo-id = 0001012938 | fsus = 3120 | vascan = 8765 | gobot = geum/canadense | its-id = | ars-id = 316698 | fna-i1 = 242416592 | fna-i2 = Geum_canadense | tro-id = 27800887 | ipn-id = 30065568-2 | nse-id = Geum+canadense | bna-id = Geum%20canadense | map = nymap.svg | image1 = Geum canadense 2826.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum aleppicum | author = Jacq. <!-- -- --> | syns = {{../sp-1|1781|'''Geum aleppicum'''|Jacq.}} {{../sp-1|1789|Geum strictum |Aiton (nom. superfl.)}} {{../sp-1|1913|Geum decurrens |Rydb.}} {{../sp-1|1824|Geum ranunculoides |Ser.}} {{../sp-1|1829|Geum rugosum |Desf.}} {{../var1|1935|Geum aleppicum |Jacq. |strictum |(Aiton) Fernald}} {{../var1|1939|Geum strictum |Aiton |decurrens |(Rydb.) Kearney & Peebles}} {{../ssp1|1949|Geum aleppicum |Jacq. |strictum |(Aiton) R.T.Clausen}} <!-- -- --> | en1 = Yellow avens | en2 = Aleppo avens | en3 = Common avens | fr1 = Benoîte d’Alep <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = | habit0 = | habit1 = | light = | chro-no = <!-- -- --> | nyfa = {{../nyfa|6509|5|}} | usda = {{../usda|GEAL3|NN|}} | col-id = | gbif = | inat = | pow-id = 30094401-2 | wfo-id = | vascan = 8763 | gobot = geum/aleppicum | its-id = | ars-id = 17514 | fna-id = 200010864 | tro-id = 27800066 | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Yellow Avens (Geum aleppicum) (5748647868).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum rivale | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Geum rivale''' |L.}} {{../sp-1|1771|Caryophyllata rivalis |(L.) Scop.}} {{../sp-1|1790|Anemone decaphilla |Krock.}} {{../sp-1|1790|Anemone dodecaphilla |Krock.}} {{../sp-1|1791|Anemone decapetala |J.F.Gmel.}} {{../sp-1|1840|Bernoullia hybrida |Raf.}} {{../sp-1|1840|Bernoullia nutans |(Raf.) Raf.}} {{../sp-1|1840|Bernoullia rivalis |(L.) Raf.}} <!-- -- --> | en1 = Purple avens | en2 = Water avens | en3 = Chocolate-root | fr1 = Benoîte des ruisseaux | fr2 = Benoîte pourpre <!-- -- --> | status = Native | status1 = Secure | c-rank = 8 | nwi1 = OBL | habit0 = | habit1 = | light = | chro-no = <!-- -- --> | nyfa = {{../nyfa|2689|5|}} | usda = {{../usda|GERI2|NN|}} | col-id = | gbif = | inat = | pow-id = 725355-1 | wfo-id = | vascan = 8772 | gobot = geum/rivale | its-id = | ars-id = | fna-id = 200010867 | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum rivale 2015-06-01 OB 110.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum laciniatum | au-abbr = Murray | au-full = | au-pub = Novi Comment. Soc. Regiae Sci. Gott. 5: 30 (1775) <!-- -- --> | syns = {{../sp-1|1775|'''Geum laciniatum''' |Murray}} {{../var1|1935|Geum laciniatum |Murray |trichocarpum |Fernald}} <!-- -- --> | en-vns = Rough avens <br> Floodplain avens | fr-vns = Benoîte lacinicée <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = FACW | nwi2 = FAC | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S5, G5 <!-- ========= --> | nyfa = {{../nyfa|2683|5|}} | usda = {{../usda|GELA|NN|}} <!-- ========= --> | col-id = 3FYBG | gbif = 5369645 | inat = 163272-Geum-laciniatum | pow-id = 725280-1 | wfo-id = 0001012963 | vascan = 8767 | gobot = geum/laciniatum | its-id = | ars-id = | fna-i1 = 242416593 | fna-i2 = Geum_laciniatum | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum laciniatum var. trichocarpum ROUGH AVENS (3328625944).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum vernum | au-abbr = (Raf.) Torr. & A.Gray | au-full = | au-pub = Fl. N. Amer. 1: 422 (1840) <!-- -- --> | syns = {{../sp-1|1821|Stylypus vernus |Raf.}} {{../sp-1|1821|Stypostylis vernus |Raf.}} {{../sp-1|1840|'''Geum vernum''' |(Raf.) Torr. & A.Gray}} <!-- -- --> | en1 = Spring avens <!-- -- --> | status = N. America native | status1 = NY nativity uncertain | c-rank = 5 | nwi1 = FACU | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNR, G5 <!-- ========= --> | nyfa = {{../nyfa|2648 |16 counties |16 counties}} | inatc = {{../inat|130906 |11 counties |11 counties }} | gbifc = {{../gbif|5369957 |present in NY |present in New York State}} | usda = {{../usda|GEVE|NN|Endangered in NY}} <!-- ========= --> | col-id = | pow-id = 725402-1 | wfo-id = | vascan = | gobot = geum/vernum | its-id = | ars-id = | fna-i1 = | fna-i2 = Geum_vernum | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Spring Avens (Geum vernum) - Flickr - Jay Sturner (1).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum triflorum | author = Pursh | var0 = triflorum <!-- -- --> | syns = {{../sp-1|1814|'''Geum triflorum''' |Pursh}} {{../sp-1|1823|Sieversia triflora |(Pursh) R.Br.}} {{../sp-1|1832|Geum pubescens |Hook.}} {{../sp-1|1906|Erythrocoma campanulata |(Greene}} {{../sp-1|1906|Erythrocoma canescens |(Greene}} {{../sp-1|1906|Erythrocoma flavula |(Greene}} {{../sp-1|1906|Erythrocoma triflora |(Pursh) Greene}} {{../var1|1936|Geum ciliatum |Pursh|triflorum|(Pursh) Jeps. (nom. illeg.)}} {{../sp-1|1958|Geum canescens |(Greene) Munz}} <!-- -- --> | en-vns = Prairie smoke <br> Old man's whiskers <!-- -- --> | status = Native | status1 = Threatened | c-rank = 10 | nwi1 = FACU | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S2, G5 <!-- -- --> | nyfa = {{../nyfa|2666|2|}} | usda = {{../usda|GETR|NN|}} | col-id = | gbif = | inat = | pow-id = 109871-2 | wfo-id = | vascan = | gobot = 0 | its-id = | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = The botanical cabinet (No 1609) (8613654108).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum virginianum | author = L. <!-- ========= --> | syns = {{../sp-1|1753|'''Geum virginianum''' |L.}} {{../sp-1|1785|Caryophyllata virginiana |(L.) Lam.}} {{../sp-1|1813|Geum hirsutum |Muhl. ex Link}} {{../sp-1|1822|Geum heterophyllum |Link (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |lanceolatum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |macrophyllum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |ochroleucum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |ramosum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |uniflorum |Raf. (nom. nud.)}} {{../var1|1889|Geum album |J.F.Gmel. |flavum |Porter}} {{../sp-1|1896|Geum flavum |(Porter) E.P.Bicknell}} {{../var1|1923|Geum virginianum |L. |murrayanum |Fernald}} <!-- ========= --> | en-vns = Cream-colored avens <br> Cream avens <!-- ========= --> | status = Native | status1 = Threatened | c-rank = 9 | nynhp = [https://guides.nynhp.org/rough-avens/ S2] | nwi1 = FACU | nwi2 = FAC | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S2, G5 <!-- ========= --> | nyfa = {{../nyfa|6511 |23 counties |23 counties}} | inatc = {{../inat|131001 |Livingston, Wyoming |Livingston, Wyoming }} | gbifc = {{../gbif|5369702 |present in NY|present in New York State}} | usda = {{../usda|GEVI4 |NN|}} <!-- ========= --> | col-id = | pow-id = | wfo-id = | vascan = | gobot = geum/virginianum | its-id = 24665 | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum virginianum iNat-146376349 (2x3).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum macrophyllum | au-abbr = Willd. | au-full = | au-pub = Enum. Pl. Hort. Berol. 2: 557 (1809) | var0 = macrophyllum <!-- -- --> | syns = {{../sp-1|1809|'''Geum macrophyllum'''|Willd.}} {{../sp-1|1910|Geum fauriei |H.Lév.}} {{../var1|1915|Geum japonicum |Thunb. |sachalinense |Koidz.}} {{../var1|1924|Geum japonicum |Thunb. |fauriei |(H.Lév.) Kudô}} {{../sp-1|1926|Geum sachalinense |(Koidz.) Makino}} {{../var1|1952|Geum macrophyllum |Willd. |sachalinense |(Koidz.) H.Hara}} {{../var1|1953|Geum aleppicum |Jacq. |sachalinense |(Koidz.) Ohwi}} {{../var1|1967|Geum perincisum |Rydb. |intermedium |B.Boivin}} {{../ssp1|1982|Geum macrophyllum |Willd. |fauriei |(H.Lév.) Vorosch.}} <!-- -- --> | en1 = Largeleaf avens | en2 = Large-leaved avens <!-- -- --> | status = Native | status1 = Endangered | c-rank = 8 | nynhp = [https://guides.nynhp.org/bigleaf-yellow-avens/ S1] | nwi1 = FACW | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S1, G5 <!-- ========= --> | nyfa = {{../nyfa|2663|10 counties|Chenango, Essex, Orange, Orleans, Otsego, Saratoga, Steuben, Ulster, Warren, Yates}} | inatc = {{../inat|77266|Delaware, Ulster |Delaware, Ulster Counties}} | gbifc = {{../gbif|5369784|present in NY|present in New York State}} | usda = {{../usda|GEMAM|NN|}} <!-- ========= --> | col-id = | gbif = | inat = | pow-id = | wfo-id = | vascan = | gobot = geum/macrophyllum | its-id = | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum macrophyllum 202912270.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum urbanum | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Geum urbanum''' |L.}} {{../sp-1|1771|Caryophyllata urbana |(L.) Scop.}} {{../sp-1|1794|Caryophyllata officinalis |Moench}} {{../sp-1|1840|Bernoullia media |Raf.}} {{../sp-1|1893|Geranium pseudomolle |(Pant.) B.D.Jacks.}} {{../ssp1|1974|Geum rivale |L. |urbanum |(L.) Á.Löve & D.Löve}} <!-- -- --> | en-vns = Town avens <br> Herb Bennet <br> Bennet's root <br> Wood avens <br> Clove-root <br> Colewort <br> St. Benedict's herb | fr-vns = Benoîte commune <!-- -- --> | status = Introduced | status1 = Invasive | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = | ns-rank = <!-- ========= --> | nyfa = {{../nyfa|2725|7 counties|Cayuga (2006), Lewis (2026), Monroe (1989), Onondaga (1988), Orange (1990), St. Lawrence (1997), Yates (2021)}} | inatc = {{../inat|55891-Geum-urbanum|22 counties|}} | gbifc = {{../gbif|||}} | usda = {{../usda|GEUR|XX|}} <!-- ========= --> | col-id = | gbif = | inat = | pow-id = | wfo-id = | vascan = 8776 | gobot = geum/urbanum | its-id = 24663 | ars-id = 17518 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = Geum%20urbanum | map = Geum urbanum nymap.svg | image1 = 20130617Geum urbanum.jpg }}<!-- ================================================================================ --> {{../end table}} ===''Geum'' hybrids=== {{../txt |img=Geum xcatlingii comparison.jpg |cap=''Geum × catlingii'' (center),<br>''Geum canadense'' (top right),<br>''Geum urbanum'' (bottom) | }} {{../table|order=Rosales|Rosaceae|Rosoideae|Colurieae||Geum| }}<!-- ================================================================================ --> {{../genus|Geum|Avens|886|10|author=L. }}<!-- ================================================================================ --> {{../taxon | species = Geum × aurantiacum | au-abbr = Fr. ex Scheutz | au-full = | au-pub = Prodr. Monogr. Geor.: 30 (1870) <!-- ========= --> | hp1 = Geum aleppicum | hp2 = Geum rivale <!-- ========= --> | syns = 1870. '' '''Geum × aurantiacum''' ''Fr. ex Scheutz in Prodr. Monogr. Geor.:30 <!-- ========= --> | en-vns = Orange avens <br> Hybrid yellow & purple avens <br> Hybrid yellow & water avens <!-- -- --> | status = Native | status1 = Unranked | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|6510|Onondaga (1942)|Onondaga (1942, M.E. Faust & N.M. Sadler)}} | inatc = {{../inat|170751|no NY observations|0}} | gbifc = {{../gbif|5370010|not present in NY|not present in New York State}} | usda = {{../usda|GEAU2|NN|}} <!-- ========= --> | col-id = 8V8DS <!-- Geum × aurantiacum Fr. ex Scheutz --> | gbif = <!-- Geum ×aurantiacum Fr. ex Scheutz --> | pow-id = 725183-1 | wfo-id = | vascan = | gobot = geum/aleppicum | its-id = 24648 | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ================================================================================ --> {{../taxon | species = Geum × cortlandicum | au-abbr = M.Hough | au-full = | au-pub = Phytoneuron 2018-59: 1 (2018) <!-- -- --> | hp1 = Geum canadense | hp2 = Geum laciniatum <!-- -- --> | syns = 2018. '' '''Geum × cortlandicum''' ''M.Hough in Phytoneuron 2018-59:1 <!-- -- --> | en-vns = Cortland avens <br> Hybrid white & rough avens <!-- -- --> | status = Native | status1 = Unranked | status2 = | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7655 |Cortland, Seneca |Cortland (2018), Seneca (2018)}} | inatc = {{../inat|954291 |Cortland, Seneca |Cortland (2018, 2020), Seneca (2018)}} | gbifc = {{../gbif|10716832 |Cortland, Seneca |Cortland (2018, 2020), Seneca (2018)}} | usda = {{../usda|||}} <!-- ========= --> | col-id = 6KFVW | gbif = | inat = | pow-id = 77203992-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ================================================================================ --> {{../taxon | species = Geum × hainesianum | au-abbr = M.Hough, A.V.Gilman & Chapm.-Lam | au-full = | au-pub = 2021. Geum x hainesianum (Rosaceae), a new hybrid avens from eastern North America. Rhodora 123(993): 67-84. <!-- ========= --> | hp1 = Geum aleppicum | hp2 = Geum canadense <!-- ========= --> | syns = 2022. '' '''Geum × hainesianum''' ''M.Hough, A.V.Gilman & Chapm.-Lam in Rhodora 123: 13 <!-- ========= --> | en-vns = Haines’s avens <br> Hybrid yellow & white avens <!-- ========= --> | status = Native | status1 = Unranked | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7613 |Tioga (1942)|Tioga (1942, R.T. & E.R.Clausen)}} | inatc = {{../inat|1426000 |Cortland (cultivated)|Cortland (2021, cultivated by M. Hough)}} | gbifc = {{../gbif|12231213|not present in NY|not present in New York State}} | usda = {{../usda|||}} <!-- ========= --> | col-id = B2Y5W | pow-id = 77309022-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ================================================================================ --> {{../taxon | species = Geum × catlingii | au-abbr = J.-P.Bernard & R.Gauthier | au-full = | au-pub = Naturaliste Canad. 113: 321 (1986) | hp1 = Geum canadense | hp2 = Geum urbanum <!-- -- --> | syns = 1986. '' '''Geum × catlingii''' ''J.-P.Bernard & R.Gauthier in Naturaliste Canad. 113:321 <!-- ========= --> | en-vns = Catling's avens <br> Hybrid white & town avens <!-- ========= --> | fr-vns = <!-- ========= --> | status = Introduced | status1 = Naturalized | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7614 |Cortland (2016) |Cortland (2016, M. Hough)}} | inatc = {{../inat|170752 |9 NY counties |Cayuga, Chautauqua, Chemung, Cortland, Erie, Monroe, Onondaga, Schuyler, Tompkins}} | gbifc = {{../gbif|5369947 |present in NY |present in New York State}} | usda = {{../usda|GECA17 |N?|}} <!-- ========= --> | col-id = BS9BV | pow-id = 931308-1 | wfo-id = | vascan = | gobot = | its-id = | ars-id = | fna-id = | tro-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | cpc-id = | cab-id = | eol-id = | kew-id = | map = nymap.svg | image1 = Geum xcatlingii fl.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum × intermedium | au-abbr = Ehrh. | au-full = | au-pub = Beitr. Naturk. Verw. Wiss. 6: 143 (1791) <!-- ========= --> | hp1 = Geum rivale | hp2 = Geum urbanum <!-- ========= --> | syns = <poem> 1791. '' '''Geum × intermedium''' ''Ehrh. in Beitr. Naturk. Verw. Wiss. 6:143 1800. '' Geum urbanum intermedium ''(Ehrh.) Willd. in Sp. Pl., ed. 4. 2: 1114 1812. '' Geum urbanum ''var. ''intermedium ''(Ehrh.) Mérat in Nouv. Fl. Env. Paris:198 1825. '' Geum rivale ''var. ''intermedium ''(Ehrh.) Ser. in A.P.de Candolle, Prodr. 2:551 1834. '' Geum rivale ''ssp. ''intermedium ''(Ehrh.) Schübl. & G. Martens 1836. '' Geum × rivale-urbanum ''G.Mey. in Chloris Han.:39 (not validly publ.) 1841. '' Geum × willdenowii ''J.N.Buek bis in Fl. March.:595 1860. '' Geum × intermedium ''var. ''willdenowii ''(J.N.Buek bis) Asch. in Fl. Brandenburg 1:179 </poem> <!-- ========= --> | en-vns = Intermediate avens <br> Hybrid purple & town avens <!-- ========= --> | status = Introduced | status1 = Naturalized | status2 = | imap = | ipa-us = | griisus = | ny-tier = | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA | ns-rank = <!-- ========= --> | nyfa = {{../nyfa|7656 |Cortland (2018) |Cortland (2018, M. Hough)}} | inatc = {{../inat|628500 |Cayuga, Cortland |Cayuga (2018, 2021), Cortland (2018-2023), Madison (2023, not RG yet)}} | gbifc = {{../gbif|5369692 |Cayuga, Cortland |Cayuga (2018, 2021), Cortland (2018-2023)}} | usda = {{../usda|||}} <!-- ========= --> | col-id = 7VQST | pow-id = 725266-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Geum × intermedium 002.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum × macneillii | au-abbr = J.-P.Bernard & R.Gauthier | au-full = | au-pub = Naturaliste Canad. 113: 321 (1986) <!-- -- --> | hp1 = Geum laciniatum | hp2 = Geum urbanum <!-- -- --> | syns = 1986. '' '''Geum × macneillii''' ''J.-P.Bernard & R.Gauthier in Naturaliste Canad. 113:321 <!-- -- --> | en-vns = McNeill's avens <br> Hybrid rough & town avens <!-- -- --> | status = Introduced | status1 = Naturalized | status2 = | imap = | ipa-us = | griisus = | ny-tier = | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7657 |Cortland (2018) |Cortland (2018, M.Hough)}} | inatc = {{../inat|975912 |Cayuga, Cortland |Cayuga (2021), Cortland (2019-22)}} | gbifc = {{../gbif|5369940 |Cayuga, Cortland |Cayuga (2021), Cortland (2019-22)}} | usda = {{../usda|||}} <!-- ========= --> | col-id = CDBGY | pow-id = 931307-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ------------------------------------------------------------ --> {{../end table}} {{BookCat}} 2dgexea680o0tnuf7w2ydvih3bd4ozp 4668497 4668495 2026-09-04T03:24:11Z Krok6kola 2720781 ([[c:GR|GR]]) [[c:COM:FR|File renamed]]: [[File:Waldsteinia fragarioides kz01 (3x4).jpg]] → [[File:Waldsteinia ternata kz01 (3x4).jpg]] [[c:COM:FR#FR3|Criterion 3]] (obvious error) · Species misidentification. This is a 3x4 cropped version of the main kz01 asset. The specimen displays the large, broad, overlapping flower petals and deeply lobed, sharp cuneate leaves characteristic of the Eurasian Waldsteinia ternata. Additionally, the partially open bud near the upper right clearly exposes an... 4668497 wikitext text/x-wiki {{../header | this = Rosales : Rosaceae : Rosoideae 1 : | this-ttxt = Ulmarieae, Rubeae, Colurieae, Sanguisorbeae | prev-link = Fabales | next-link = Rosoideae 2 | next-text = Rosales: Rosaceae: Rosoideae 2 }} ==Rosales introduction== {{:Flora of New York/txt |img= |cap= |The order '''{{wp|Rosales}}''' is part of the nitrogen-fixing clade in the fabids: {{cladex |label1=fabids |1={{cladex |1={{cladex |1=[[../Zygophyllales|Zygophyllales]] |2={{cladex |label1=<small>COM clade</small> |1={{cladex |1=[[../Celastrales|Celastrales]] |2={{cladex |1=[[../Malpighiales|Malpighiales]] |2=[[../Oxalidales|Oxalidales]] }} }} |label2=<small>nitrogen‑fixing&nbsp;clade&nbsp;</small> |2={{cladex |1=[[../Fabales|Fabales]] |2={{cladex |1=[[../Rosales|Rosales]] |2={{cladex |1=[[../Cucurbitales|Cucurbitales]] |2=[[../Fagales|Fagales]] }} }} }} }} }} }} }} }} ===Rosaceae introduction=== {{../Rosaceae-intro}} <!-- {{../Rosaceae-clades}} is the sandbox for {{../Rosaceae-intro}}--> ====Rosoideae introduction==== {{../txt |img= |cap= |The Rosaceae subfamily '''Rosoideae''' contains the following tribes: *Agrimonieae (''Acaena, Agrimonia, Poteridium, Poterium, Sanguisorba'') *Colurieae (''Fallugia, Geum, Sieversia, Waldsteinia'') *Potentilleae (''Alchemilla, Aphanes, Chamaerhodos, Comarum, Dasiphora, Drymocallis, Duchesnea, Fragaria, Horkelia, Horkeliella, Ivesia, Potentilla, Sibbaldia, Sibbaldiopsis'') *Roseae (''Rosa'') *Rubeae (''Rubus'') *Ulmarieae (''Filipendula'') }} ==Tribe Ulmarieae== ===''Filipendula''=== {{../txt |img=Filipendula rubra 2017-06-25 3209.jpg |cap=''Filipendula rubra'' |''Filipendula'' contains about ten Eurasian species and two North American species. Of these, one Midwestern and two Eurasian species have been found to have naturalized in New York. ''Filipendula rubra'' ('''queen of the prairie''') is the only North American native ''Filipendula'' found in New York State, where it is only known to be present in the wild as a garden escape.<ref>[http://floranorthamerica.org/Filipendula_rubra Ivan A. Schanzer (2020). Flora of North America, Volume 9. Page 25. Flora of North America Association. 5 Nov. 2020]</ref> It can be found on roadsides, ditches, thickets, and disturbed soils, but it has been less common than the Eurasian ''Filipendula ulmaria''.<ref>[https://newyork.plantatlas.usf.edu/Plant.aspx?id=2695 Werier, David, et al. (2023). ''Filipendula rubra'' in New York Flora Atlas. New York Flora Association, Albany, New York. 12 Dec. 2023.]</ref> }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Ulmarieae||Filipendula| }}<!-- ------------------------------------------------------------ --> {{../genus|Filipendula|Queen, Dropwort|948|3| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Filipendula rubra | au-abbr = (Hill) B.L.Rob. | au-full = Benjamin Lincoln Robinson (1864-1935). | au-pub = Rhodora 8(94):204. 1906. <!-- -- --> | syns = {{../sp-1|1768|Ulmaria rubra |Hill}} {{../sp-1|1770|Spiraea lobata |Gronov. ex Jacq.}} {{../sp-1|1906|'''Filipendula rubra''' |B.L.Rob.}} {{../sp-1|1836|Thecanisia angustifolia |Raf.}} {{../sp-1|1836|Thecanisia purpurea |Raf.}} {{../sp-1|1837|Thecanisia lobata |(Gronov.) Raf.}} {{../sp-1|1879|Filipendula lobata |(Gronov.) Maxim.}} {{../sp-1|1891|Spiraea rubra |(Hill) Britton}} {{../var1|1924|Filipendula lobata |(Gronov.) Maxim. |albiflora |Bergmans}} {{../var1|1924|Filipendula lobata |(Gronov.) Maxim. |venusta-magnifica |Bergmans}} <!-- -- --> | en1 = Queen-of-the-prairie | en2 = Prairie dropwort | en3 = Red queen-of-the-meadow | fr1 = Filipendule rouge <!-- -- --> | status = Introduced | from = US midwest | status1 = N. America native | status2 = Cultivated in NY | c-rank = 0 | nwi1 = FACW | habit0 = Perennial | habit1 = Herb-forb | light = Part shade | ny-rank = G4-G5 <!-- -- --> | nyfa = {{../nyfa|2695|X|Roadsides, thickets, ditches, and disturbed soils. Much less common than the closely related F. ulmaria.}} | usda = {{../usda|FIRU2|NX|}} | col-id = | gbif = | inat = | pow-id = 104799-2 | wfo-id = | vascan = 8748 | gobot = filipendula/rubra | its-id = 25170 | ars-id = 456822 | fna-i1 = | fna-i2 = Filipendula_rubra | tro-id = 27800864 | ipn-id = | lbj-id = FIRU2 | nse-id = Filipendula+rubra | bna-id = Filipendula%20rubra | map = Filipendula rubra nymap.svg | nyfa-co = <abbr title=" ">13 counties</abbr> | inat-co = <abbr title="About 25 counties">25 counties</abbr> | image1 = Filipendula rubra inflorescence.JPG|width1=120 }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Filipendula ulmaria | au-abbr = (L.) Maxim. | au-full = | au-pub = Trudy Imp. S.-Peterburgsk. Bot. Sada 6: 251 (1879) <!-- -- --> | syns = {{../sp-1|1753|Spiraea ulmaria |L.}} {{../sp-1|1819|Spiraea denudata |J.& C.Presl}} {{../for1|1822|Spiraea ulmaria |L. |tomentosa |Hayne)}} {{../sp-1|1838|Thecanisia ulmaria |(L.) Raf.}} {{../sp-1|1879|'''Filipendula ulmaria'''|Maxim.}} {{../var1|1879|Filipendula ulmaria |Maxim. |denudata |(J.Presl & C.Presl) Maxim.}} {{../sp-1|1889|Filipendula denudata |Fritsch}} {{../for1|1889|Spiraea ulmaria |L. |tomentosa |(Hayne) St.-Lag. (not validly publ.)}} {{../sp-1|1894|Ulmaria ulmaria |(L.) Barnhart (not validly publ.)}} {{../sp-1|1895|Thecanisia ulmaria |(L.) Raf. ex B.D.Jacks. (comb. not validly publ.)}} {{../ssp1|1909|Filipendula ulmaria |Maxim. |denudata |Hayek}} <!-- -- --> | en1 = Queen-of-the-meadow | en2 = Meadowsweet | en3 = Meadow dropwort | en4 = Elm queen-of-the-meadow | en5 = White queen-of-the-meadow | fr1 = Reine-des-prés <!-- -- --> | status = Introduced | from = temperate Eurasia | status1 = Potentially invasive | status2 = Note:<ref>[http://dnr.wi.gov/topic/invasives/fact/queenofthemeadow.html Current invasive species rule revisions propose to regulate ''Filipendula ulmaria'' as Restricted in Wisconsin.]</ref><ref>[https://nas.er.usgs.gov/queries/FactSheet.aspx?SpeciesID=3810 Pfingsten, I.A., D. Rose, 2023, ''Filipendula ulmaria'' (L.) Maxim.: U.S. Geological Survey, Nonindigenous Aquatic Species Database, Gainesville, FL, https://nas.er.usgs.gov/queries/FactSheet.aspx?SpeciesID=3810, Revised 8/30/2023, Accessed 12/16/2023]</ref> | imap = | ipa-us = 14017 4 | griisus = | ny-tier = | c-rank = | nwi1 = FAC | nwi2 = FACW | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = | ns-rank = <!-- -- --> | nyfa = {{../nyfa|2694|X|}} | usda = {{../usda|FIUL|XX|}} | col-id = | gbif = 2987999 <!-- Filipendula ulmaria (L.) Maxim. --> | inat = 63134-Filipendula-ulmaria | pow-id = 724943-1 <!-- Filipendula ulmaria (L.) Maxim. --> | wfo-id = | vascan = 8749 | gobot = filipendula/ulmaria | its-id = 25171 | ars-id = 17105 | fna-id = | tro-id = 27800269 | nse-id = | ipn-id = | map = Filipendula ulmaria nymap.svg | nyfa-co = <abbr title="About 21 counties in 2023">21 counties</abbr> | inat-co = <abbr title="About 16 counties in 2023">16 counties</abbr> | image1 = 20150811Filipendula ulmaria2.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Filipendula vulgaris | author = Moench <!-- -- --> | syns = {{../sp-1|1753|Spiraea filipendula |L.}} {{../sp-1|1768|Ulmaria filipendula |(L.) Hill}} {{../sp-1|1782|Filipendula hexapetala |Gilib. (opus utique oppr.)}} {{../sp-1|1794|'''Filipendula vulgaris'''|Moench}} {{../sp-1|1822|Spiraea vulgaris |(Moench) Gray (nom. superfl.)}} {{../var1|1824|Spiraea filipendula |L. |vulgaris |Cambess.}} {{../sp-1|1879|Filipendula hexapetala |Gilib. ''superfl''.}} {{../sp-1|1788|Ulmaria filipendula |(L.) Hill ex Focke}} {{../sp-1|1894|Filipendula filipendula |(L.) Voss (not validly publ.)}} {{../sp-1|1915|Ulmaria angustifolia |Rehder}} <!-- -- --> | en1 = Dropwort | en2 = Common queen-of-the-meadow | fr1 = Filipendule vulgaire | fr2 = Filipendule <!-- -- --> | status = Introduced | from = temperate Eurasia | status1 = Not naturalized <!-- -- --> | nyfa = {{../nyfa|2708|X|}} | usda = {{../usda|FIVU|XX|}} | col-id = | gbif = 2988069 | inat = 62020-Filipendula-vulgaris | pow-id = 724945-1 | wfo-id = | vascan = 8750 | gobot = filipendula/vulgaris | its-id = 25172 | ars-id = 104611 | fna-i1 = | fna-i2 = Filipendula_vulgaris | tro-id = 27800060 | nse-id = | ipn-id = | map = Filipendula vulgaris nymap.svg | nyfa-co = <abbr title="Madison, Chemung (1938)">Madison, Chemung (1938)</abbr> | inat-co = <abbr title="No research-grade observations, a few cultivated">No RG observations</abbr> | image1 = Rosaceae - Filipendula vulgaris-1 (8303629717).jpg }}<!-- ------------------------------------------------------------ --> {{../end table }}<!-- ------------------------------------------------------------ --> ==Tribe Rubeae== The Rubeae include the genera ''Rubus'' and ''Dalibarda'' (which is here treated as a monospecific subgenus of ''Rubus''. ===''Rubus''=== ====''Rubus'' subg. ''Chamaemorus''==== {{:Flora of New York/txt |img=Rosaceae- Rubus chamaemorus (Cloudberry) 2.jpg |cap=''Rubus chamaemorus'' |The native status of '''cloudberry''' (''Rubus chamaemorus'') in New York could be subject to question. It is a circumboreal bramble, native to all provinces of Canada and present in the states of Alaska, Minnesota, New Hampshire, and Maine. However, the only vouchered report of cloudberry growing outside of cultivation in New York was from Montauk in Suffolk County, Long Island in 1908.<ref>[http://www.torreybotanical.org/wp-content/uploads/2013/02/Juncus_diffusissimus_NY.pdf Eric E. Lamont and Stephen M. Young (2005) "''Juncus diffusissimus'', an addition to the flora of New York, with notes on its recent spread in the United States." ''The Journal of the Torrey Botanical Society'', '''132(4)''': 635-643. 2005.]</ref><ref>[http://libotanical.org/newsletters/0401.pdf H. K. Svenson (1936) "The Early Vegetation of Long Island," ''Brooklyn Botanical Garden Record'' 25: 207-227. Republished in the ''Long Island Botanical Society Newsletter'', p.2, 1994.]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Chamaemorus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Cloudberry|843|30|subg=Chamaemorus| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus chamaemorus | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus chamaemorus'''|L.}} {{../sp-1|1906|Chamaemorus anglica |Greene}} {{../sp-1|1906|Chamaemorus norwegica |Greene}} {{../sp-1|1920|Chamaemorus chamaemorus|(L.) House (not validly publ.)}} <!-- -- --> | en1 = Cloudberry | en2 = Baked-apple-berry | en3 = Salmon-berry | en4 = Malka | fr1 = Chicouté | fr2 = Ronce petit-mûrier | fr3 = Mûres blanches <!-- -- --> | status = Native | status1 = No recent reports | status2 = Impersistent | c-rank = 10 | nwi1 = FACW | habit0 = Perennial | habit1 = Herb-subshrub | light = Sun <!-- -- --> | nyfa = {{../nyfa|6526|Z|Suffolk county only}} | usda = {{../usda|RUCH|NN|}} | vascan = 8928 | gobot = rubus/chamaemorus | its-id = 24850 | ars-id = 32286 | tro-id = 27800175 | ipn-id = | lbj-id = RUCH | nse-id = | bna-id = | map = Rubus chamaemorus nymap.svg | nyfa-co = <abbr title="Herbarium specimens from Suffolk (1908) only as of 1/4/2024">Suffolk (1908)</abbr> | inat-co = <abbr title="Research-grade observations from 0 counties as of 1/4/2024">No NY observations</abbr> | image1 = Hjortron.png }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Dalibarda''==== {{../txt |img=Rubus repens 15-p.bot-dali.repens-6.jpg |cap=''Rubus repens'' |''Dalibarda'' has been treated as a {{fny-gloss|monospecific}} genus, but the Flora of North America Editorial Committee (2014)<ref>[http://www.tropicos.org/Name/50334377?tab=references Flora of North America Editorial Committee. 2014. Magnoliophyta: Picramniaceae to Rosaceae. Fl. N. Amer. 9: i–xxiv, 1–713. Listed in Tropicos.org. Missouri Botanical Garden. 05 Jul 2015 (http://www.tropicos.org/Name/50334377)]</ref> treats it as a subgenus of ''Rubus''. Its leaves superficially resemble those of violets, but its flowers and fruit are clearly ''rubusesque''. There continues to be disagreement about whether ''R. dalibarda'' or ''R. repens'' should be the accepted species name. ''Rubus repens'' was found to be invalid but has been proposed for conservation as the accepted name.<ref>[https://onlinelibrary.wiley.com/doi/10.1002/tax.12999 Turner, I.M. (2023), (2980) Proposal to conserve the name Rubus repens (L.) Kuntze against R. repens Weston (Rosaceae). TAXON, 72: 942-942. https://doi.org/10.1002/tax.12999]</ref> Subgenus ''Dalibarda'' does appear to form a strongly-supported clade with the rest of ''Rubus'' and may nest within ''Rubus''.<ref>[https://bsapubs.onlinelibrary.wiley.com/doi/10.2307/2656957 Alice, L.A. and Campbell, C.S. (1999), Phylogeny of Rubus (rosaceae) based on nuclear ribosomal DNA internal transcribed spacer region sequences . Am. J. Bot., 86: 81-97. https://doi.org/10.2307/2656957]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Dalibarda| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewdrop|685|1|subg=Dalibarda }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus repens | au-abbr = (L.) Kuntze | au-full = | au-pub = Revis. Gen. Pl. 1: 223. 1891. <!-- -- --> | syns = {{../sp-1|1753|Dalibarda repens |L.}} {{../sp-1|1762|Rubus dalibarda |L. (nom. superfl.)}} {{../sp-1|1770|Rubus repens |Weston (nom. rej. prop.)}} {{../sp-1|1803|Dalibarda violioides |Michx.}} {{../sp-1|1806|Dalibarda cordata |Stephan (nom. superfl.)}} {{../for1|1879|Rubus dalibarda |L. |caespitosus |Kuntze}} {{../for1|1879|Rubus dalibarda |L. |laciniostipulatus |Kuntze}} {{../sp-1|1891|'''Rubus repens''' |(L.) Kuntze (nom. cons. prop.)}} <!-- -- --> | en1 = Dewdrop | en2 = Robin runaway | en3 = False-violet | en4 = Star-violet | fr1 = Dalibarde rampante <!-- -- --> | status = Native | status1 = Likely secure | c-rank = 9 | nwi1 = FAC | habit0 = Perennial | habit1 = Herb-forb | light = Part shade - shade <!-- -- --> | nyfa = {{../nyfa|6508|4|Rubus repens (L.) Kuntze - dewdrop - Cool hardwood and coniferous forests as well as hummocks in forested swamps. Predominately in shaded habitats with wet-mesic soils.}} | usda = {{../usda|DARE|NN|Dalibarda repens L.}} | col-id = 4TJW9 <!-- Rubus dalibarda L. 2023 --> | gbif = 2999946 <!-- Dalibarda repens L. (based on COL 2023) --> | pow-id = 223505-2 <!-- Rubus repens (L.) Kuntze --> | wfo-id = 0000988537 <!-- Rubus repens (L.) Kuntze --> | vascan = 8727 <!-- Rubus repens (L.) Kuntze --> | gobot = rubus/dalibarda <!-- Rubus dalibarda L. 2023 --> | inat = 924430-Rubus-repens | its-id = 520495 <!-- Rubus repens (L.) Kuntze --> | ars-id = 470540 <!-- Rubus repens (L.) Kuntze --> | fna-i1 = 250100445 <!-- Rubus repens (L.) Kuntze --> | fna-i2 = Rubus_repens | tro-id = 50334377 <!-- Rubus repens (L.) Kuntze --> | ipn-id = | lbj-id = DARE <!-- Dalibarda repens L. 2023 --> | nse-id = Rubus+repens <!-- Rubus repens (L.) Kuntze --> | bna-id = Rubus%20dalibarda | map = nymap.svg | image1 = Dalibarda repens 4284 (2x3).JPG }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Anoplobatus''==== {{../txt |img=Rubus odoratus G4.JPG |cap=''Rubus odoratus''<br>purple-flowering raspberry |The thornless ''Anoplobatus'' subgenus contains ''Rubus odoratus''. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Anoplobatus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Raspberry|843|30|subg=Anoplobatus }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus odoratus | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus odoratus'''|L.}} {{../var1|1892|Rubus odoratus |L. |columbianus |Millsp.}} {{../sp-1|1903|Rubacer odoratum |Rydb.}} {{../sp-1|1903|Rubacer columbianum |Rydb.}} {{../sp-1|1906|Bossekia odorata |Greene}} {{../sp-1|1912|Bossekia columbiana |A.Heller}} <!-- -- --> | en1 = Purple-flowering raspberry | en2 = Purple-flowered raspberry | en3 = Virginia raspberry | en4 = Thimbleberry | fr1 = Ronce odorante | fr2 = Framboisier sauvage | fr3 = Calottes <!-- -- --> | status = Native | status1 = Secure | c-rank = 7 | nwi1 = unranked | habit0 = Perennial | habit1 = Subshrub | light = Sun - shade <!-- -- --> | nyfa = {{../nyfa|2759|5|Forest edges, talus slopes, mesic rocky outcrops, disturbed soils in forests, and thickets. Generally in wet-mesic or sometimes mesic soils and often in at least partly shaded habitats.}} | usda = {{../usda|RUOD|NN|}} | vascan = 8941 | gobot = rubus/odoratus | its-id = 24997 | ars-id = 32402 | fna-id = 250100440 | tro-id = 27801320 | ipn-id = | lbj-id = RUOD | nse-id = Rubus+odoratus | bna-id = Rubus%20odoratus | map = <!-- auto --> | image1 = Rubus-odoratus-flower.JPG }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Idaeobatus''==== {{../txt |img=Fertődi zenit málna.jpg |cap=''Rubus idaeus''<br>red raspberry |The ''Rubus'' subgenus ''Idaeobatus'' species are generally referred to as '''raspberries'''. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Idaeobatus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Raspberry|843|30|subg=Idaeobatus| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus idaeus | author = L. | ssp0 = strigosus | ssp-au = (Michx.) Focke <!-- -- --> | syns = {{../sp-1|1803|Rubus strigosus |Michx.}} {{../var1|1872|Rubus idaeus |L. |strigosus |(Michx.) Maxim.}} {{../sp-1|1906|Batidaea acalyphacea |Greene}} {{../sp-1|1906|Batidaea strigosa |(Michx.) Greene}} {{../sp-1|1907|Rubus egglestonii |Blanch.}} {{../ssp1|1911|'''Rubus idaeus''' |L. |'''strigosus'''|(Michx.) Focke}} {{../sp-1|1912|Batidaea egglestonii |(Blanch.) A.Heller}} {{../sp-1|1913|Rubus acalyphaceus |(Greene) Rydb.}} {{../sp-1|1913|Rubus carolinianus |Rydb.}} {{../sp-1|1913|Rubus arizonicus |(Greene) Rydb.}} {{../sp-1|1913|Rubus subarcticus |(Greene) Rydb.}} {{../sp-1|1945|Rubus aliceae |L.H.Bailey}} <!-- -- --> | en1 = American red raspberry | en2 = North American red raspberry | en3 = Grayleaf red raspberry | fr1 = Framboisier sauvage <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = FACU | nwi2 = FAC | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S5, G5-T5 <!-- -- --> | nyfa = {{../nyfa|2755|5|as Rubus idaeus ssp. strigosus}} | usda = {{../usda|RUIDS2|NN|as Rubus idaeus ssp. strigosus}} | col-id = BNZCD | gbif = 2993119 | pow-id = 223189-2 | wfo-id = 0001006872 | inat = | vascan = 8934 | gobot = rubus/idaeus | its-id = 524636 | ars-id = 467362 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Texter Mountain Nature Preserve (Revisited) (13) (9387620458).jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus idaeus | author = L. | ssp0 = idaeus <!-- -- --> | syns = {{../sp-1|1753|'''Rubus idaeus''' |L.}} {{../sp-1|1770|Rubus cannabifolius |Weston}} {{../sp-1|1770|Rubus elegantissimus |Weston}} {{../var1|1770|Rubus idaeus |L. |albus |Weston}} {{../var1|1770|Rubus idaeus |L. |biflorus |Weston}} {{../var1|1770|Rubus idaeus |L. |laevis |Weston}} {{../sp-1|1789|Rubus daeus ruber |Aiton}} {{../sp-1|1796|Rubus fragrans |Salisb.}} {{../sp-1|1811|Rubus obtusifolius |Willd.}} {{../sp-1|1915|Batidaea idaea |(L.) Nieuwl.}} {{../sp-1|1915|Batidaea vulgaris |Nieuwl.}} <!-- -- --> | en1 = European red raspberry | en2 = Framboisier <!-- -- --> | status = Introduced | from = Eurasia | status1 = | c-rank = | nwi1 = FACU | nwi2 = FAC | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = SNA, G5-T5 <!-- -- --> | nyfa = {{../nyfa|2746|X|}} | usda = {{../usda|RUIDI|XX|}} | col-id = | gbif = | pow-id = 77232556-1 | wfo-id = 0001006864 | inat = | vascan = | gobot = rubus/idaeus | its-id = 524635 | ars-id = 32348 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Fertődi zamatos málna 2.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus occidentalis | au-abbr = L. | au-full = | au-pub = Sp. Pl. 493 (1753) <!-- -- --> | syns = {{../sp-1|1753|'''Rubus occidentalis''' |L.}} {{../sp-1|1794|Rubus tomentosus |Borkh. (nom. superfl.)}} {{../var1|1828|Rubus idaeus |L. |americanus |Torr.}} {{../var1|1839|Rubus occidentalis |L. |incisus |Schltdl.}} {{../ssp1|1874|Rubus occidentalis |L. |euoccidentalis |Focke}} {{../var1|1890|Rubus occidentalis |L. |japonicus |Miyabe}} {{../var1|1891|Rubus occidentalis |L. |grandiflorus |Focke}} {{../var1|1898|Rubus fruticosus |L. |tomentosus |Fiori}} {{../var1|1902|Rubus occidentalis |L. |pallidus |L.H.Bailey}} {{../var1|1905|Rubus occidentalis |L. |flavobaccus |Blanch.}} {{../sp-1|1906|Melanobatus occidentalis |(L.) Greene}} <!-- -- --> | en1 = Black raspberry | en2 = Black cap | en3 = Thimbleberry | fr1 = Framboisier de Virginie <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S5, G5 <!-- -- --> | nyfa = {{../nyfa|2751|5|}} | usda = {{../usda|RUOC|NN|}} | col-id = 4TL3H | gbif = | pow-id = 223350-2 | wfo-id = | inat = | vascan = 8940 | gobot = rubus/occidentalis | its-id = 24854 | ars-id = 32401 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = Rubus%20occidentalis | image1 = 2018-06-15 10 27 01 Black raspberries ripening along a walking path in the Franklin Farm section of Oak Hill, Fairfax County, Virginia.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus × neglectus | author = Peck (pro sp.) <!-- -- --> | hp1 = Rubus occidentalis | hp2 = Rubus idaeus ssp. strigosus <!-- -- --> | en1 = Purple wild raspberry <!-- -- --> | status = Native | status1 = Not assessed | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Vine, Shrub | light = | chro-no = | ny-rank = SNA, GNA <!-- -- --> | nyfa = {{../nyfa|2702|2?|}} | usda = {{../usda|RUIDS2|NN|as Rubus idaeus ssp. strigosus}} | col-id = | gbif = | pow-id = | wfo-id = | inat = | vascan = | gobot = | its-id = 24989 | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Nidda Fauerbach Rubus idaeus ws.png }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus phoenicolasius | author = Maxim. <!-- -- --> | syns = {{../sp-1|1872|Rubus phoenicolasius |Maxim.}} <!-- -- --> | en1 = Wineberry | en2 = Japanese wineberry | en3 = Wine raspberry | status = Introduced | from = temperate Asia | status1 = Highly invasive | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyis = 86%<ref>{{../nyis-ref|Rubus phoenicolasius|High|86|}}</ref> | nyfa = {{../nyfa|2720|X|}} | usda = {{../usda|RUPH|X0|}} | ref-21 = CP-4<ref name=CP4>{{../ref|CP4}}</ref> NE-4<ref name=NE4>{{../ref|NE4}}</ref> | col-id = | gbif = | pow-id = | wfo-id = | inat = | vascan = | gobot = rubus/phoenicolasius | its-id = 25017 | ars-id = 32416 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = Rubus phoenicolasius nymap.svg | image1 = Japanse wijnbes rijpe vruchten.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus illecebrosus | author = Focke <!-- -- --> | syns = {{../sp-1|1899|Rubus illecebrosus|Focke}} <!-- -- --> | en1 = Strawberry raspberry | en2 = Charming raspberry | fr1 = Framboisier fraisier <!-- -- --> | status = Introduced | from = eastern Asia | status1 = Potentially invasive | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2785|X|}} | usda = {{../usda|RUIL|XX|}} | ref-21 = [http://www.invasive.org/browse/subinfo.cfm?sub=11585 IO] | col-id = | gbif = | pow-id = | wfo-id = | inat = | vascan = | gobot = rubus/illecebrosus | its-id = 504856 | ars-id = 32354 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = | image1 = Rubus illecebrosus - fruit (aka).jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus parvifolius | au-abbr = L. | au-full = | au-pub = <!-- -- --> | syns = {{../sp-1|1753|Rubus parvifolius|L.}} {{../sp-1|1784|Rubus triphyllus|Thunb.}} {{../sp-1|1833|Rubus purpureus|Bunge}} <!-- -- --> | en-vns = {{../vn1|Japanese raspberry|2021 NYFA}} {{../vn1|Small-leaf bramble|2021 iNaturalist}} {{../vn1|Trailing raspberry|1961 Webster's third new international dictionary.}} | fr-vns = {{../vn1||}} {{../vn1||}} {{../vn1||}} <!-- -- --> | status = Introduced | from = Asia | from1 = Australia | status1 = Potentially invasive | status2 = Naturalized | c-rank = X | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = SNA <!-- -- --> | nyfa = {{../nyfa|7605|Xn|}} | usda = {{../usda|||}} | col-id = | gbif = | pow-id = | wfo-id = | inat = 51645-Rubus-parvifolius | vascan = | gobot = rubus/parvifolius | its-id = | ars-id = 32409 | fna-id = | fna-i1 = | fna-i2 = | tro-id = 27803708 | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | cos = NYFA: <abbr title="Onondaga (2016)">1 county</abbr> | image1 = Rubus parvifolius 0907.JPG }}<!-- ------------------------------------------------------------ --> {{../end table }}<!-- ------------------------------------------------------------ --> ====''Rubus'' subg. ''Rubus''==== Subgenus ''Rubus'' contains the blackberries and dewberries. =====''Rubus'' subg. ''Rubus'' sect. ''Allegheniensis''===== {{../txt |img=2016-07-25 16 21 11 Blackberries along the Blue Ridge Parkway in Deep Gap, Yancey County, North Carolina.jpg |cap=''Rubus allegheniensis'' |''Rubus'' L. sect. '''''Allegheniensis''''' contains ''Rubus allegheniensis'', ''R. alumnus'', and ''R. pennus''.<ref>[https://npgsweb.ars-grin.gov/gringlobal/taxon/taxonomyspecieslist?id=18622&type=section ''Rubus'' L. sect. ''Allegheniensis'' in USDA-ARS, GRIN-Global, U.S. National Plant Germplasm System. 23 September 2023]</ref> Of these, only ''R. allegheniensis'' is listed for New York State. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Allegheniensis| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Allegheniensis| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus allegheniensis | author = Porter <!-- -- --> | syns = {{../var1|1890|Rubus villosus |Aiton not Thunb. |montanus |Porter}} {{../sp-1|1894|Rubus montanus |(Porter) Porter (later homonym)}} {{../sp-1|1896|'''Rubus allegheniensis'''|Porter}} {{../sp-1|1906|Rubus pergratus |Blanch.}} {{../sp-1|1906|Rubus amnicola |Blanch.}} {{../sp-1|1945|Rubus avipes |L.H.Bailey}} <!-- -- --> | en1 = Allegheny blackberry | en2 = Common blackberry | en3 = Highbush blackberry | fr1 = Ronce des Alléghanys | fr2 = Mûrier | fr3 = Ronce alléghanienne | status = Native | status1 = Secure | c-rank = 3 | nwi1 = FACU | habit0 = Perennial | habit1 = Shrub <!-- -- --> | nyfa = {{../nyfa|2747|5|}} | usda = {{../usda|RUAL|NN|}} | vascan = 8920 | gobot = rubus/allegheniensis | its-id = 24866 | ars-id = 32254 | fna-id = 242417156 | tro-id = 27801178 | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = Rubus allegheniensis NY-dist-map.png | image1 = Rubus allegheniensis NRCS-015.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Canadenses''===== {{../txt |img=Rubus canadensis (3813766870).jpg |cap=''Rubus canadensis'' |''Rubus'' L. sect. '''''Canadenses''''' contains ''Rubus canadensis'' and ''R. kennedyanus''.<ref>[https://npgsweb.ars-grin.gov/gringlobal/taxon/taxonomyspecieslist?id=18620&type=section ''Rubus'' L. sect. ''Canadenses'' in USDA-ARS, GRIN-Global, U.S. National Plant Germplasm System. 23 September 2023]</ref> Of these, only ''Rubus canadensis'' is listed for New York State. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Canadenses| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Canadenses| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus canadensis | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus canadensis''' |L.}} {{../sp-1|1891|Rubus millspaughii |Britton}} {{../sp-1|1895|Selnorition canadensis |(L.) Raf. ex B.D.Jacks.}} {{../sp-1|1901|Rubus randii |(L.H.Bailey) Rydb.}} {{../sp-1|1931|Rubus kennedyanus |Fernald}} {{../sp-1|1932|Rubus montensis |L.H.Bailey}} {{../sp-1|1944|Rubus acridens |L.H.Bailey}} {{../sp-1|1944|Rubus ulterior |L.H.Bailey}} {{../sp-1|1947|Rubus besseyi |L.H.Bailey}} <!-- -- --> | en1 = Smooth blackberry | en2 = Smooth bramble | en3 = Thornless blackberry | status = Native | status1 = Vulnerable | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2777|3?|}} | usda = {{../usda|RUCA16|NN|}} | vascan = | gobot = Rubus/canadensis | its-id = | ars-id = 32281 | tro-id = 27801823 | map = | image1 = Rubus canadensis perrons black.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Arguti''===== {{../txt |img=Rubus pensilvanicus flowers.JPG |cap=''Rubus pensilvanicus'' |The Flora of North America Editorial Committee (2014) treats the '''Yankee blackberry''' (''R. frondosus''), '''Burnham's blackberry''' (''R. burnhamii''), and the '''prickly Florida blackberry''' (''R. argutus'') as being among the 72 synonyms of the '''Pennsylvania blackberry''' (''R. pensilvanicus'').<ref>[http://www.tropicos.org/Name/27801334?tab=synonyms ''Rubus pensilvanicus'' Poir. at Tropicos.org. Missouri Botanical Garden. 04 Jul 2015 <http://www.tropicos.org/Name/27801334>]</ref><ref>[http://data.canadensys.net/vascan/taxon/8944 ''Rubus pensilvanicus'' Poir. at ''Canadensys'', VASCAN last updated on 2015-06-29]</ref> ITIS also lists '''Rydberg's blackberry''' (''R. rydbergianus''), along with the other three, as a synonym of (''R. pensilvanicus'').<ref>[http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=504874 ''Rubus pensilvanicus'' Poir. at ''Integrated Taxonomic Information System'' (ITIS) (http://www.itis.gov). 04 Jul 2015]</ref> This leaves sect. ''Arguti'' equivalent to ''Rubus pensilvanicus'' itself. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Arguti| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Arguti| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus pensilvanicus | au-abbr = Poir. | au-full = | au-pub = J.B.A.M.de Lamarck, Encycl. 6: 246 (1804) <!-- -- --> | syns = {{../sp-1|1804|'''Rubus pensilvanicus'''|Poir.}} {{../sp-1|1822|Rubus argutus |Link}} {{../sp-1|1824|Rubus frondosus |Bigelow}} {{../sp-1|1913|Rubus brainerdii |Rydb.}} {{../sp-1|1932|Rubus abactus |L.H.Bailey}} {{../sp-1|1933|Rubus penetrans |L.H.Bailey}} {{../sp-1|1945|Rubus barbarus |L.H.Bailey}} {{../sp-1|1945|Rubus bellobatus |L.H.Bailey}} {{../sp-1|1945|Rubus blakei |L.H.Bailey}} {{../sp-1|1945|Rubus burnhamii |L.H.Bailey}} {{../sp-1|1945|Rubus rydbergianus |L.H.Bailey}} <!-- -- --> | en1 = Pennsylvania blackberry | en2 = Pennsylvania raspberry | fr1 = Ronce de Pennsylvanie <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2749|5|}} | usda = {{../usda|RUPE3|NN|}} | col-id = 4TM7H <!-- Rubus × pensilvanicus Poir. --> | gbif = 2989061 <!-- Rubus ×pensilvanicus Poir. --> | pow-id = 30263954-2 <!-- Rubus pensilvanicus Poir. --> | wfo-id = 0001007097 <!-- Rubus pensilvanicus Poir. --> | inat = 78894-Rubus-pensilvanicus <!-- Rubus pensilvanicus --> | vascan = 8944 <!-- Rubus pensilvanicus Poiret --> | gobot = rubus/pensilvanicus | its-id = 504874 | ars-id = 104942 <!-- Rubus pensilvanicus Poir. --> | fna-i1 = 242417169 | fna-i2 = Rubus_pensilvanicus | tro-id = 27801334 | map = | image1 = Rubus pensilvanicus iNat 3654011.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Cuneifolii''===== {{../txt |img=Rubus cuneifolius NRCS-1.jpg |cap=''Rubus cuneifolius'' | }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Cuneifolii| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Cuneifolii| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus cuneifolius | au-abbr = Pursh | au-full = | au-pub = Fl. Amer. Sept. 1: 347 (1814) <!-- -- --> | syns = {{../sp-1|1788|Rubus parvifolius |Walter (sensu auct.)}} {{../sp-1|1814|'''Rubus cuneifolius'''|Pursh}} {{../var1|1925|Rubus cuneifolius |Pursh |angustior |L.H.Bailey}} {{../sp-1|1932|Rubus audax |L.H.Bailey}} {{../sp-1|1938|Rubus longii |Fernald}} {{../var1|1941|Rubus cuneifolius |Pursh |subellipticus |Fernald}} {{../sp-1|1943|Rubus chapmanii |L.H.Bailey}} {{../sp-1|1943|Rubus georgiensis |L.H.Bailey}} {{../sp-1|1943|Rubus humei |L.H.Bailey}} {{../sp-1|1943|Rubus randolphiorum |L.H.Bailey}} {{../sp-1|1943|Rubus probativus |L.H.Bailey}} {{../sp-1|1970|Rubus dixiensis |H.A.Davis, A.M.Fuller & T.Davis}} <!-- -- --> | en1 = Sand blackberry <!-- -- --> | status = Native | status1 = Endangered | status2 = No recent reports | c-rank = 10 | nwi1 = | habit0 = Perennial | habit1 = Shrub <!-- -- --> | nyfa = {{../nyfa|2758|1|}} | usda = {{../usda|RUCU|N0|Endangered in CT, NH, NY, PA}} | col-id = 4TJVP | gbif = 2996841 | inat = 128854-Rubus-cuneifolius | pow-id = 30201781-2 | wfo-id = 0001006778 | vascan = | gobot = | its-id = 24905 | ars-id = 32304 | map = Rubus cuneifolius NY-dist-map.png | nyfa-co = <abbr title="Nassau (1907), Richmond (1868-90), Suffolk">3 counties</abbr> | inat-co = <abbr title="Nassau (2020), Suffolk (2023)">2 counties</abbr> | image1 = Sand-Blackberry-flower (5622475257) (3x4).gif }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Setosi''===== {{../txt |img= |cap= |The Flora of North America Editorial Committee (2014) treats both the '''Bristly Oswego blackberry''' (''R. dissimilis'') and the '''Vermont blackberry''' (''R. vermontanus'') as being among the 40 synonyms of the '''Bristly blackberry''' (''R. setosus'').<ref>[http://www.tropicos.org/Name/27801373?tab=synonyms ''Rubus setosus'' Bigelow at Tropicos.org. Missouri Botanical Garden. 04 Jul 2015]</ref><ref>[http://data.canadensys.net/vascan/taxon/8947 ''Rubus setosus'' Bigelow at ''Canadensys'', VASCAN last updated on 2015-06-29]</ref> }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Setosi| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Setosi| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus setosus | au-abbr = Bigelow | au-full = | au-pub = Fl. Boston.: 198 (1824) <!-- -- --> | syns = {{../sp-1|1824|'''Rubus setosus'''|Bigelow}} {{../sp-1|1901|Rubus nigricans |Rydb. (nom. illeg.)}} {{../sp-1|1904|Rubus vermontanus |Blanch.}} {{../var1|1904|Rubus vermontanus |Blanch. |viridifolius |Blanch.}} {{../sp-1|1906|Rubus groutianus |Blanch.}} {{../sp-1|1907|Rubus semisetosus |Blanch.}} {{../sp-1|1932|Rubus wheeleri |L.H.Bailey}} {{../sp-1|1941|Rubus dissimilis |L.H.Bailey}} {{../sp-1|1941|Rubus lawrencei |L.H.Bailey}} {{../sp-1|1947|Rubus beatus |L.H.Bailey}} {{../sp-1|1947|Rubus condignus |L.H.Bailey}} {{../sp-1|1947|Rubus viridifrons |L.H.Bailey}} <!-- -- --> | en1 = Bristly blackberry | en2 = Setose blackberry | en3 = Small bristleberry | en4 = Bristly raspberry | fr1 = Ronce sétuleuse <!-- -- --> | status = Native | status1 = Likely secure | c-rank = 2 | nwi1 = FACW | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S4 | ns-rank = <!-- -- --> | nyfa = {{../nyfa|6536|4|}} | usda = {{../usda|RUSE|NN|}} | col-id = 4TM7S <!-- Rubus × setosus Bigelow --> | gbif = 7769228 <!-- Rubus ×setosus Bigelow --> | inat = 168165-Rubus-setosus | pow-id = 740337-1 <!-- Rubus setosus Bigelow --> | wfo-id = 0001007245 <!-- Rubus setosus Bigelow --> | vascan = 8947 | gobot = rubus/setosus | its-id = 25046 | ars-id = 104974 | fna-id = 250100446 | tro-id = 27801373 | map = | image1 = Rubus setosus as Rubus nigricans BB-1913.png }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Rubus''===== {{../txt |img=Rubus laciniatus 06.jpg |cap=''Rubus laciniatus'' |'''Sect. ''Rubus''''' contains somewhat invasive Old World species of ''Rubus'' subg. ''Rubus''. The primary species of this section in New York State is ''Rubus laciniatus'' ('''cutleaf blackberry'''). The rare-in-NY but possibly naturalizing and invasive '''Himalayan blackberry''' (''Rubus bifrons'' and/or ''Rubus armeniacus''), listed in the New York Flora Atlas only in Bronx and Staten Island (2008), are treated as a single species (''R. bifrons'') by the Flora of North America. However in Eurasia, they appear to be two distinct species. iNaturalist allows both species, following Kew's POWO, and both have a significant number of research-grade observations in North America. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Rubus| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Rubus|sect=Rubus|subsect=Hiemales }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus laciniatus | au-abbr = Willd. | au-full = Willdenow | au-pub = | author = <!-- -- --> | syns = {{../sp-1|1806|'''Rubus laciniatus'''|Willd.}} {{../var1|1822|Rubus corylifolius |SM.? |laciniatus |(Willd.) Wallr.}} {{../sp-1|1858|'''Rubus nemoralis''' |P.J.Müll. (POWO accepted name 2023)}} {{../var1|1893|Rubus vulgaris |P.J.Müll.|laciniatus |(Weston) Dippel}} {{../var1|1902|Rubus bifrons |Vest |laciniatus |(Willd.) Murr}} {{../var1|1909|Rubus bifrons |Vest |laciniatus |(Weston) Dalla Torre & Sarnth.}} {{../for1|1914|Rubus vulgaris |P.J.Müll.|laciniatus |(Weston) Frid.}} {{../for1|2014|Rubus nemoralis |P.J.Müll.|laciniatus |(Willd.) A.Beek}} <!-- -- --> | en1 = Cutleaf blackberry | en2 = Cut-leaved blackberry | en3 = Evergreen blackberry | en4 = Cutleaf bramble | fr1 = Ronce laciniée <!-- -- --> | status = Introduced | status1 = Moderately invasive <!-- -- --> | nyis = 63%<ref>{{../nyis-ref|Rubus laciniatus|Moderate|63|all}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|6531|X|Cayu}} | usda = {{../usda|RULA|XX}} | col-id = 4TKMN <!-- Rubus laciniatus Willd. --> | gbif = 2992543 <!-- Rubus laciniatus Willd. --> | inat = 78891-Rubus-laciniatus | pow-id = 738594-1 <!-- Rubus nemoralis P.J.Müll. Flora 41: 139 (1858) --> | wfo-id = 0000984132 <!-- Rubus laciniatus Willd. --> | vascan = 8936 <!-- Rubus laciniatus Willdenow --> | gobot = | its-id = | ars-id = 32364 | fna-i1 = 242417164 | fna-i2 = Rubus_laciniatus | fna-id = | map = | image1 = Rubus in Poznan Lawica.jpg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus bifrons | author = Vest ex Tratt. <!-- -- --> | syns = {{../sp-1|1821|'''Rubus bifrons'''|Vest}} {{../sp-1|1823|Rubus bifrons |Vest ex Tratt.}} {{../sp-1|1825|Rubus linkianus |Ser.}} {{../var1|1846|Rubus nemorosus |Hayne ex Willd. |bifrons |(Vest) Bab.}} {{../sp-1|1874|Rubus armeniacus |Focke (per FNA 2023)}} {{../sp-1|auct|Rubus procerus |non P.J.Müll. ex Genev}} {{../var1|1898|Rubus fruticosus |L. |bifrons |(Vest) Fiori}} <!-- -- --> | en-vns = {{../vn1|Himalayan berry |2023 GBIF Rubus bifrons Vest ex Tratt.}} {{../vn1|Himalayan blackberry |2023 New York Flora Atlas, Rubus bifrons Vest}} {{../vn1|Himalayan giant blackberry |2023 VASCAN: GRIN}} {{../vn1|Twice-leaved blackberry |2023 VASCAN: M.Anions}} <!-- -- --> | fr1 = Ronce discolore | status = Introduced | from = Europe | status1 = Moderately invasive | status2 = No NY specimens | nyis = 57%<ref>{{../nyis-ref|Rubus bifrons|Moderate|57|L}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2754|X|none}} | usda = {{../usda|RUBI|X|Bronx (only)}} | col-id = | gbif = | inat = 168025-Rubus-bifrons | pow-id = 60449596-2 <!-- Rubus bifrons Vest (1821) --> | wfo-id = | vascan = 8925 | gobot = | its-id = 24891 | ars-id = 32274 | tro-id = 27801204 | map = nymap.svg | nyfa-co = <abbr title="Bronx, Richmond (2008)">2 counties</abbr> | inat-co = <abbr title="Nassau, Niagara, Queens, Suffolk">4 counties</abbr> | image1 = Rubus bifrons - Botanischer Garten, Frankfurt am Main - DSC02471.JPG }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus armeniacus | author = Focke | sn-of = Rubus bifrons | sn-o-au = Vest (per FNA 2023) <!-- -- --> | syns = {{../sp-1|1874|'''Rubus armeniacus'''|Focke}} {{../for1|1906|Rubus macrostemon |(Focke) Caflisch |armeniacus |(Focke) Sprib.}} {{../var1|1914|Rubus hedycarpus |Focke |armeniacus|Focke}} {{../sp-1|auct|Rubus discolor |non Weihe & Nees (1824)}} <!-- -- --> | en1 = Armenian Blackberry | en2 = Himalayan blackberry | en3 = Himalaya giant blackberry | status = Introduced | from = Caucasus | status1 = Moderately invasive | status2 = [http://www.invasive.org/weedcd/species/6338.htm IO] | nyis = 57%<ref>{{../nyis-ref|Rubus bifrons|Moderate|57|L}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|0|0|Not listed}} | usda = {{../usda|RUAR9|X|MA,NJ,PA,OH,ON}} | col-id = 4TJGY <!-- Rubus armeniacus Focke --> | gbif = | inat = | pow-id = 735202-1 <!-- Rubus armeniacus Focke --> | wfo-id = | vascan = | gobot = | its-id = 837296 | ars-id = 32263 | map = nymap.svg | nyfa-co = <abbr title="Follows Flora of North America by treating as a synonym of Rubus bifrons">Synonymized</abbr> | inat-co = <abbr title="A single "RG" observation in Washington County">1 county</abbr> | image1 = 20190624 Rubus armeniacus Drouwenerzand.jpeg }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus ulmifolius | au-abbr = Schott | au-full = | au-pub = Erneuerte Vaterl. Blätt. Oesterr. Kaiserstaat 11: 42 (1818), nom. cons. prop. <!-- -- --> | syns = {{../sp-1|1788|Rubus inermis |Pourr.}} {{../sp-1|1809|Rubus inermis |Willd.}} {{../sp-1|1818|'''Rubus ulmifolius'''|Schott}} {{../sp-1|1824|Rubus discolor |Weihe & Nees}} {{../var1|1825|Rubus flagellaris |Willd. |inermis |Ser.}} {{../sp-1|1861|Rubus rusticanus |Mercier}} {{../sp-1|1869|Rubus bellidiflorus |hort. ex K.Koch}} {{../var1|1903|Rubus ulmifolius |Schott |genuinus |Sudre}} {{../ssp1|1903|Rubus ulmifolius |Schott |vulgatus |Sudre}} {{../var1|1905|Rubus ulmifolius |Schott |bellidiflorus |C. K. Schneid.}} {{../var1|1914|Rubus ulmifolius |Schott |inermis |(Ser.) Focke}} <!-- -- --> | en-vns = {{../vn1|Elmleaf blackberry|2021 iNaturalist}} {{../vn1|Elm-leaved blackberry|2021 NYFA}} | fr-vns = <!-- -- --> | status = Introduced | status1 = Potentially invasive | status2 = | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = <!-- -- --> | nyfa = {{../nyfa|7604|Xm|}} | usda = {{../usda|||}} | gbif = 2996929 <!-- Rubus ulmifolius Schott --> | inat = 78895-Rubus-ulmifolius | pow-id = 740982-1 <!-- Rubus ulmifolius Schott --> | wfo-id = 0000985000 <!-- Rubus ulmifolius Schott --> | vascan = | gobot = | its-id = | ars-id = 313548 <!-- Rubus ulmifolius Schott --> | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | nyfa-co = <abbr title="Bronx (2016)">Bronx (2016)</abbr> | inat-co = <abbr title="No Research Grade observations in New York State 2023">No RG observations</abbr> | image1 = Macchiabjörnbär (Rubus ulmifolius)-2975 - Flickr - Ragnhild & Neil Crawford.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Hispidi''===== {{../txt |img=Rubus-hispidus-Acadia.jpg |cap=''Rubus hispidus'' | }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Hispidi| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewberry|843|30|subg=Rubus|sect=Hispidi| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus hispidus | author = L. <!-- -- --> | syns = {{../sp-1|1753|Rubus hispidus |L.}} {{../var1|1923|Rubus hispidus |L. |blanchardianus |L.H.Bailey}} {{../sp-1|1824|Rubus sempervirens |Bigelow}} {{../var1|1940|Rubus hispidus |L. |obovalis |Fernald}} {{../sp-1|1941|Rubus blanchardianus |(L.H.Bailey) L.H.Bailey }} {{../sp-1|1941|Rubus fassettii |L.H.Bailey}} {{../var1|1941|Rubus hispidus |L. |cupulifer |L.H.Bailey}} {{../var1|1941|Rubus hispidus |L. |pervarius |L.H.Bailey}} <!-- -- --> | en1 = Bristly dewberry | en2 = Running blackberry | en3 = Swamp blackberry | en4 = Swamp dewberry | fr1 = Ronce hispide | status = Native | status1 = Secure | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2756|5|}} | usda = {{../usda|RUHI|NN|}} | vascan = 8931 | gobot = rubus/hispidus | its-id = 24943 | ars-id = 32340 | tro-id = 27801261 | map = | image1 = Bristly Dewberry, Swamp Dewberry (Rubus hispidus) (2864363698).jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Flagellares''===== {{../txt |img=Rubus flagellaris UGA1120430.jpg |cap=''Rubus flagellaris'' |The Flora of North America Editorial Committee (2014) treats both the '''Arundel blackberry''' (''R. arundelanus''), '''Enslen's blackberry''' (''R. enslenii''), and the '''Ithaca blackberry''' (''R. ithacanus'') as being among the 112 synonyms of the '''American dewberry''' (''R. flagellaris'').<ref>[http://www.tropicos.org/Name/27801236?tab=synonyms ''Rubus flagellaris'' Willd. at Tropicos.org. Missouri Botanical Garden. 04 Jul 2015 <http://www.tropicos.org/Name/27801236>]</ref><ref>[http://data.canadensys.net/vascan/taxon/8929 ''Rubus flagellaris'' Willd. at ''Canadensys'', VASCAN last updated on 2015-06-29]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Flagellares| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewberry|843|30|subg=Rubus|sect=Flagellares| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus flagellaris | au-abbr = Willd. | au-full = | au-pub = Enum. Pl. Hort. Berol. 2: 549 (1809) <!-- -- --> | syns = {{../sp-1|1809|'''Rubus flagellaris'''|Willd.}} {{../sp-1|1894|Rubus baileyanus |Britton}} {{../sp-1|1901|Rubus procumbens |Rydb}} {{../sp-1|1906|Rubus arenicola |Blanch.}} {{../sp-1|1906|Rubus geophilus |Blanch}} <!-- -- --> | en1 = American dewberry | en2 = Northern dewberry | en3 = Whiplash dewberry | en4 = Northern blackberry | fr1 = Ronce à flagelles | status = Native | status1 = Secure | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2757|5|}} | usda = {{../usda|RUFL|NN|}} | vascan = 8929 | gobot = rubus/flagellaris | its-id = 24921 | ars-id = 104958 | fna-id = 242417161 | tro-id = 27801236 | map = | image1 = Rubus flagellaris WFNY-093B.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} =====''Rubus'' subg. ''Rubus'' sect. ''Caesii''===== {{../txt |img=Rubus caesius SSN-150707-01.jpg |cap=''Rubus caesius''<br>Eurasian dewberry |The '''European dewberry''' has only been reported outside of cultivation in limited number of counties in North America, including only a few from New York. As of July 2015, it was not listed on New York State's ''Non-Native Plant Species Invasiveness Assessment''.<ref>[http://www.nyis.info/?action=israt ''Non-Native Plant Species Invasiveness Assessment'']</ref> However the ''Finger Lakes Native Plant Society'',<ref>[http://flnps.org/plants/rubus-caesius ''Rubus caesius: Finger Lakes Native Plant Society'' website 2015.]</ref> ''Cornell Plantations'', and Tompkins County<ref>[http://www.tompkinscountyny.gov/files/emc/educationalmaterial/Invasive_plants_2009list.pdf Tompkins County 2009 ''Regional Invasive Species List'']</ref> all list ''Rubus caesius'' as an invasive plant. }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Rubus|Caesii| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Dewberry|843|30|subg=Rubus|sect=Caesii| }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus caesius | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Rubus caesius''' |L.}} {{../sp-1|1782|Rubus caeruleus |Gilib.}} {{../var1|1829|Rubus polymorphus | |caesius |(L.) Spenn.}} {{../sp-1|1888|Rubus caesius intermedia |Schmidely}} {{../for1|1889|Rubus caesius |L. |eucaesius |Bouvet (not validly publ.)}} {{../sp-1|1891|Rubus caesius turkestanicus |Regel}} {{../ssp1|1894|Rubus fruticosus |L. |caesius |Bonnier & Layens}} {{../sp-1|1895|Selnorition cesius |(L.) Raf. ex B.D.Jacks.}} {{../var1|1898|Rubus fruticosus |L. |caesius |(L.) Fiori}} {{../sp-1|1937|Rubus psilophyllus |Nevski (nom. illeg.)}} <!-- -- --> | en1 = Eurasian dewberry | en2 = European dewberry | fr1 = Ronce bleue | fr2 = Ronce bleuâtre | status = Introduced | from = Eurasia | from1 = northern Africa | status1 = Moderately invasive | status2 = CP-3<ref name=CP3>{{../ref|CP3}}</ref> | c-rank = | nwi1 = | habit0 = | habit1 = <!-- -- --> | nyfa = {{../nyfa|2753|X|Onon}} | usda = {{../usda|RUCA|XX|}} | ref-21 = CP-3<ref name=CP3>{{../ref|CP3}}</ref> | col-id = | gbif = 2995209 | inat = | pow-id = 735608-1 | wfo-id = | vascan = 8926 | gobot = 0 | its-id = 24898 | ars-id = 32278 | tro-id = 27800345 | bna-id = Rubus%20caesius | map = nymap.svg | cos = | nyfa-co = <abbr title="Madison (2017), Onondaga (1951), Tioga (1923), Tompkins, Yates (1973)">5 counties</abbr> | inat-co = <abbr title="Cayuga, Erie, Livingston, Madison, Monroe, Niagara, Oneida, Onondaga, Ontario, Tompkins, Westchester">11 counties</abbr> | image1 = Gervuoge001.jpg }}<!-- ------------------------------------------------------------ --> {{../end table}} ====''Rubus'' subg. ''Cylactis''==== {{../txt |img=Rubus pubescens flower.jpg |cap=''Rubus pubescens''<br>dwarf raspberry | }}<!-- ------------------------------------------------------------ --> {{../table|order=Rosales|Rosaceae|Rosoideae|Rubeae||Rubus|Cylactis| }}<!-- ------------------------------------------------------------ --> {{../genus|Rubus|Blackberry|843|30|subg=Cylactis }}<!-- ------------------------------------------------------------ --> {{../taxon | species = Rubus pubescens | au-abbr = Raf. | au-full = | au-pub = Med. Repos. 2: 333 (1811) <!-- -- --> | syns = {{../sp-1|1803|Rubus saxatilis |Michx. (nom. illeg.)}} {{../sp-1|1811|'''Rubus pubescens''' |Raf.}} {{../sp-1|1819|Cylactis montana |Raf.}} {{../sp-1|1823|Rubus triflorus |Richardson}} {{../sp-1|1824|Rubus canadensis |Torr. (sensu auct.)}} {{../sp-1|1825|Rubus mucronatus |Ser.}} {{../sp-1|1893|Cylactis egopodioides |(Ser.) Raf. ex B.D.Jacks.}} {{../sp-1|1985|Cylactis pubescens |(Raf.) W.A.Weber}} <!-- -- --> | en1 = Dwarf raspberry | en2 = Dwarf red blackberry | en3 = Creeping red raspberry | en4 = Trailing red raspberry | en5 = Plumboy | fr1 = Ronce pubescente | fr2 = Catherinette <!-- -- --> | status = Native | status1 = Secure | c-rank = 8 | nwi1 = FACW | habit0 = Perennial | habit1 = Shrub | light = | chro-no = | ny-rank = S5 | ns-rank = <!-- -- --> | nyfa = {{../nyfa|6534|5|}} | usda = {{../usda|RUPUP2|NN|}} | col-id = | gbif = | inat = | pow-id = 284431-2 | wfo-id = | vascan = 8945 | gobot = rubus/pubescens | its-id = 25028 | ars-id = 32425 | fna-id = 250100444 | tro-id = 27800180 | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | kew-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = | image1 = Rubus pubescens 1-eheep (5097346393).jpg }}<!-- ------------------------------------------------------------ --> {{../end table }}<!-- ------------------------------------------------------------ --> ==Tribe Colurieae== {{../txt |img=Waldsteinia fragarioides WFNY-099.jpg |cap=Appalachian barren-strawberry |The New York members of the Colurieae tribe include about ten species of the genus '''''Geum''''' (avens) and a single species of '''''Waldsteinia''''' (barren-strawberry). Sources are mixed as to whether ''Waldsteinia'' should be placed under the ''Geum'' genus itself. In either case, the "barren strawberries" of this tribe are more closely related to the ''Geums'' than to the other New York strawberries (''Fragaria'') or mock-strawberries (''Duchesnea''), which are placed in the Potentilleae tribe below. Protopopova (2022) concluded: Based on ''trnH-psbA'' plastid DNA analysis we believe that the taxonomic latter decision of combining ''Waldsteinia'' and ''Taihangia'' in one genus with ''Geum'' species does not reflect the complex structure of the obtained clade."<ref>M V Protopopova et al 2021 IOP Conf. Ser.: Earth Environ. Sci. 908 012027 [https://iopscience.iop.org/article/10.1088/1755-1315/908/1/012027 DOI 10.1088/1755-1315/908/1/012027]</ref> Protopopova (2023) concluded: "Based on the present phylogenetic structure of ''Geum'', ''Waldsteinia'', and other closely related taxa, we believe that excluding Waldsteinia together with ''Coluria'', ''Taihangia'', and ''Oncostylus'' from ''Geum'' s.l. is more justified than ‘lumping’ them together into a single polymorphic genus."<ref>Protopopova, Marina, Vasiliy Pavlichenko, Victor Chepinoga, Alexander Gnutikov, and Renat Adelshin. 2023. "Waldsteinia within Geum s.l. (Rosaceae): Main Aspects of Phylogeny and Speciation History" Diversity 15, no. 4: 479. https://doi.org/10.3390/d15040479</ref> }} ===''Waldsteinia''=== {{:Flora of New York/txt |img=Waldsteinia ternata 001.jpg |cap=''Waldsteinia fragarioides'' |The type species of the genus ''Waldsteinia'' was found to be nested within ''Geum'' by J. E. E. Smedmark in 2006.<ref>[http://floranorthamerica.org/Waldsteinia James B. Phipps (2020). FNA Volume 9. page 71. Flora of North America Association 5 Nov. 2020]</ref> Alan S. Weakley (2023) lists genus ''Waldsteinia'' as a "genus of about 7 species, perennial herbs, of disjunct areas in the Northern Hemisphere. Sometimes included in Geum. Protopopova, Pavlichenko, and Stepanov (2021) and Protopopova et al. (2023) supported its treatment as a genus separate from Geum."<!-- --><ref>[https://fsus.ncbg.unc.edu/main.php?pg=show-taxon-detail.php&lsid=urn:lsid:ncbg.unc.edu:taxon:{B11C4FFC-9504-4BD9-B2DA-3C57673422C8} Weakley, A.S., and Southeastern Flora Team (2023). Flora of the southeastern United States Web App. University of North Carolina Herbarium, North Carolina Botanical Garden, Chapel Hill, U.S.A. Accessed Dec 17, 2023.]</ref><!-- --><ref>[https://www.mdpi.com/1424-2818/15/4/479 Protopopova, Marina, Vasiliy Pavlichenko, Victor Chepinoga, Alexander Gnutikov, and Renat Adelshin (2023). "Waldsteinia within Geum s.l. (Rosaceae): Main Aspects of Phylogeny and Speciation History" Diversity 15, no. 4: 479.]</ref> }} {{../table|order=Rosales|Rosaceae|Rosoideae|Colurieae||Waldsteinia| }}<!-- ------------------------------------ --> {{../genus|Waldsteinia|Barren strawberry|886|10| }}<!-- ------------------------------------ --> {{../taxon | species = Waldsteinia fragarioides | au-abbr = (Michx.) Tratt. | au-full = | au-pub = | ssp0 = fragarioides <!-- -- --> | syns = {{../sp-1|1803| Dalibarda fragarioides |Michx. |Fl. Bor.-Amer. 1: 300 (1803)}} {{../sp-1|1814| Rubus fragarioides |(Michx.) Dum.Cours. |Bot. Cult., ed. 2, 7: 293 (1814)}} {{../sp-1|1823| '''Waldsteinia fragarioides''' |(Michx.) Tratt. |Rosac. Monogr. 3: 107 (1823) acc. by POW, FNA}} {{../sp-1|1825| Comaropsis fragarioides |(Michx.) DC. ex Ser. |A.P.de Candolle, Prodr. 2: 555 (1825)}} {{../sp-1|1825| Dryas trifoliata |Pall. ex Ser. |A.P.de Candolle, Prodr. 2: 555 (1825)}} {{../sp-1|1840| Bossekia fragarioides |(Michx.) Raf |Autik. Bot.: 175 (1840)}} {{../sp-1|2006| '''Geum fragarioides''' |(Michx.) Smedmark |Bot. Jahrb. Syst. 126: 415 (2006) acc. by NYFA, VASCAN}} <!-- -- --> | en-vns = {{../vn1|Appalachian barren-strawberry|}} {{../vn1|Northern Barren Strawberry|}} {{../vn1|Dry strawberry|}} | fr-vns = {{../vn1|Waldsteinie faux-fraisier|}} <!-- -- --> | status = Native | status1 = Secure | c-rank = 7 | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S5, G5 <!-- -- --> | nyfa = {{../nyfa|2686|5|Waldsteinia fragarioides}} | usda = {{../usda|WAFR|NN|Waldsteinia fragarioides}} | col-id = 6KFTJ <!-- Geum fragarioides (Michx.) Smedmark --> | gbif = 5370015 <!-- Geum fragarioides (Michx.) Smedmark --> | kew-id = | pow-id = 1168107-2 <!-- Waldsteinia fragarioides (Michx.) Tratt. --> | wfo-id = | fsus = 3122 | vascan = 8990 <!-- Geum fragarioides (Michx.) Smedmark --> | gobot = geum/fragarioides | inat = 894458-Waldsteinia-fragarioides | its-id = 505735 <!-- Waldsteinia fragarioides --> | ars-id = 464850 <!-- Geum fragarioides (Michx.) Smedmark --> | fna-i1 = 242417492 <!-- Waldsteinia fragarioides (Michaux) Tratt. --> | fna-i2 = Waldsteinia_fragarioides | tro-id = 50326515 <!-- Waldsteinia fragarioides (Michaux) Tratt. --> | map = nymap.svg | image1 = Waldsteinia ternata kz01 (3x4).jpg }}<!-- ------------------------------------ --> {{../end table}} ===''Geum''=== {{../txt |img=Geum canadense 2533.jpg |cap=''Geum canadense'' |The New York Flora Atlas lists ten species of ''Geum'', including ''Geum fragarioides'', which is here treated above as ''Waldsteinia fragarioides''. }} {{../table|order=Rosales|Rosaceae|Rosoideae|Colurieae||Geum| }}<!-- ================================================================================ --> {{../genus|Geum|Avens|886|10|author=L. }}<!-- ================================================================================ --> {{../taxon | species = Geum canadense | au-abbr = Jacq. | au-full = Jacquin, Nicolaus(Nicolaas) Joseph von (1727-1817) | au-pub = Hortus Botanicus Vindobonensis (Hort. Bot. Vindob.) <!-- -- --> | syns = {{../sp-1|1773|'''Geum canadense''' |Jacq.}} {{../sp-1|1775|Geum laciniosum |Murray}} {{../sp-1|1788|Geum carolinianum |Walter}} {{../sp-1|1791|Geum album |J.F.Gmel.}} {{../sp-1|1794|Caryophyllata alba |Moench}} {{../sp-1|1831|Geum glutinosum |Pursh ex Lehm.}} {{../sp-1|1832|Sieversia caroliniana |G.Don}} {{../sp-1|1913|Geum camporum |Rydb}} {{../var1|1922|Geum canadense |Jacq. |camporum |(Rydb.) Fernald & Weath.}} {{../var1|1922|Geum canadense |Jacq. |grimesii |Fernald & Weath.}} {{../var1|1922|Geum canadense |Jacq. |texanum |Fernald & Weath.}} {{../var1|1937|Geum canadense |Jacq. |brevipes |Fernald}} <!-- -- --> | en-vns = White avens <br> Canada avens | fr-vns = Benoîte du Canada <br> Benoîte blanche <!-- -- --> | status = Native | status1 = Secure | c-rank = 5 | nwi1 = FAC | nwi2 = FACU | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S5, G5 <!-- -- --> | nyfa = {{../nyfa|2684|5|}} | usda = {{../usda|GECA7|NN|}} | col-id = 3FY96 | gbif = 5369800 | inat = 85325-Geum-canadense | pow-id = 30065568-2 | wfo-id = 0001012938 | fsus = 3120 | vascan = 8765 | gobot = geum/canadense | its-id = | ars-id = 316698 | fna-i1 = 242416592 | fna-i2 = Geum_canadense | tro-id = 27800887 | ipn-id = 30065568-2 | nse-id = Geum+canadense | bna-id = Geum%20canadense | map = nymap.svg | image1 = Geum canadense 2826.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum aleppicum | author = Jacq. <!-- -- --> | syns = {{../sp-1|1781|'''Geum aleppicum'''|Jacq.}} {{../sp-1|1789|Geum strictum |Aiton (nom. superfl.)}} {{../sp-1|1913|Geum decurrens |Rydb.}} {{../sp-1|1824|Geum ranunculoides |Ser.}} {{../sp-1|1829|Geum rugosum |Desf.}} {{../var1|1935|Geum aleppicum |Jacq. |strictum |(Aiton) Fernald}} {{../var1|1939|Geum strictum |Aiton |decurrens |(Rydb.) Kearney & Peebles}} {{../ssp1|1949|Geum aleppicum |Jacq. |strictum |(Aiton) R.T.Clausen}} <!-- -- --> | en1 = Yellow avens | en2 = Aleppo avens | en3 = Common avens | fr1 = Benoîte d’Alep <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = | habit0 = | habit1 = | light = | chro-no = <!-- -- --> | nyfa = {{../nyfa|6509|5|}} | usda = {{../usda|GEAL3|NN|}} | col-id = | gbif = | inat = | pow-id = 30094401-2 | wfo-id = | vascan = 8763 | gobot = geum/aleppicum | its-id = | ars-id = 17514 | fna-id = 200010864 | tro-id = 27800066 | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Yellow Avens (Geum aleppicum) (5748647868).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum rivale | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Geum rivale''' |L.}} {{../sp-1|1771|Caryophyllata rivalis |(L.) Scop.}} {{../sp-1|1790|Anemone decaphilla |Krock.}} {{../sp-1|1790|Anemone dodecaphilla |Krock.}} {{../sp-1|1791|Anemone decapetala |J.F.Gmel.}} {{../sp-1|1840|Bernoullia hybrida |Raf.}} {{../sp-1|1840|Bernoullia nutans |(Raf.) Raf.}} {{../sp-1|1840|Bernoullia rivalis |(L.) Raf.}} <!-- -- --> | en1 = Purple avens | en2 = Water avens | en3 = Chocolate-root | fr1 = Benoîte des ruisseaux | fr2 = Benoîte pourpre <!-- -- --> | status = Native | status1 = Secure | c-rank = 8 | nwi1 = OBL | habit0 = | habit1 = | light = | chro-no = <!-- -- --> | nyfa = {{../nyfa|2689|5|}} | usda = {{../usda|GERI2|NN|}} | col-id = | gbif = | inat = | pow-id = 725355-1 | wfo-id = | vascan = 8772 | gobot = geum/rivale | its-id = | ars-id = | fna-id = 200010867 | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum rivale 2015-06-01 OB 110.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum laciniatum | au-abbr = Murray | au-full = | au-pub = Novi Comment. Soc. Regiae Sci. Gott. 5: 30 (1775) <!-- -- --> | syns = {{../sp-1|1775|'''Geum laciniatum''' |Murray}} {{../var1|1935|Geum laciniatum |Murray |trichocarpum |Fernald}} <!-- -- --> | en-vns = Rough avens <br> Floodplain avens | fr-vns = Benoîte lacinicée <!-- -- --> | status = Native | status1 = Secure | c-rank = 3 | nwi1 = FACW | nwi2 = FAC | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S5, G5 <!-- ========= --> | nyfa = {{../nyfa|2683|5|}} | usda = {{../usda|GELA|NN|}} <!-- ========= --> | col-id = 3FYBG | gbif = 5369645 | inat = 163272-Geum-laciniatum | pow-id = 725280-1 | wfo-id = 0001012963 | vascan = 8767 | gobot = geum/laciniatum | its-id = | ars-id = | fna-i1 = 242416593 | fna-i2 = Geum_laciniatum | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum laciniatum var. trichocarpum ROUGH AVENS (3328625944).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum vernum | au-abbr = (Raf.) Torr. & A.Gray | au-full = | au-pub = Fl. N. Amer. 1: 422 (1840) <!-- -- --> | syns = {{../sp-1|1821|Stylypus vernus |Raf.}} {{../sp-1|1821|Stypostylis vernus |Raf.}} {{../sp-1|1840|'''Geum vernum''' |(Raf.) Torr. & A.Gray}} <!-- -- --> | en1 = Spring avens <!-- -- --> | status = N. America native | status1 = NY nativity uncertain | c-rank = 5 | nwi1 = FACU | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNR, G5 <!-- ========= --> | nyfa = {{../nyfa|2648 |16 counties |16 counties}} | inatc = {{../inat|130906 |11 counties |11 counties }} | gbifc = {{../gbif|5369957 |present in NY |present in New York State}} | usda = {{../usda|GEVE|NN|Endangered in NY}} <!-- ========= --> | col-id = | pow-id = 725402-1 | wfo-id = | vascan = | gobot = geum/vernum | its-id = | ars-id = | fna-i1 = | fna-i2 = Geum_vernum | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Spring Avens (Geum vernum) - Flickr - Jay Sturner (1).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum triflorum | author = Pursh | var0 = triflorum <!-- -- --> | syns = {{../sp-1|1814|'''Geum triflorum''' |Pursh}} {{../sp-1|1823|Sieversia triflora |(Pursh) R.Br.}} {{../sp-1|1832|Geum pubescens |Hook.}} {{../sp-1|1906|Erythrocoma campanulata |(Greene}} {{../sp-1|1906|Erythrocoma canescens |(Greene}} {{../sp-1|1906|Erythrocoma flavula |(Greene}} {{../sp-1|1906|Erythrocoma triflora |(Pursh) Greene}} {{../var1|1936|Geum ciliatum |Pursh|triflorum|(Pursh) Jeps. (nom. illeg.)}} {{../sp-1|1958|Geum canescens |(Greene) Munz}} <!-- -- --> | en-vns = Prairie smoke <br> Old man's whiskers <!-- -- --> | status = Native | status1 = Threatened | c-rank = 10 | nwi1 = FACU | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S2, G5 <!-- -- --> | nyfa = {{../nyfa|2666|2|}} | usda = {{../usda|GETR|NN|}} | col-id = | gbif = | inat = | pow-id = 109871-2 | wfo-id = | vascan = | gobot = 0 | its-id = | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = The botanical cabinet (No 1609) (8613654108).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum virginianum | author = L. <!-- ========= --> | syns = {{../sp-1|1753|'''Geum virginianum''' |L.}} {{../sp-1|1785|Caryophyllata virginiana |(L.) Lam.}} {{../sp-1|1813|Geum hirsutum |Muhl. ex Link}} {{../sp-1|1822|Geum heterophyllum |Link (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |lanceolatum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |macrophyllum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |ochroleucum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |ramosum |Raf. (nom. nud.)}} {{../var1|1828|Geum virginianum |L. |uniflorum |Raf. (nom. nud.)}} {{../var1|1889|Geum album |J.F.Gmel. |flavum |Porter}} {{../sp-1|1896|Geum flavum |(Porter) E.P.Bicknell}} {{../var1|1923|Geum virginianum |L. |murrayanum |Fernald}} <!-- ========= --> | en-vns = Cream-colored avens <br> Cream avens <!-- ========= --> | status = Native | status1 = Threatened | c-rank = 9 | nynhp = [https://guides.nynhp.org/rough-avens/ S2] | nwi1 = FACU | nwi2 = FAC | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S2, G5 <!-- ========= --> | nyfa = {{../nyfa|6511 |23 counties |23 counties}} | inatc = {{../inat|131001 |Livingston, Wyoming |Livingston, Wyoming }} | gbifc = {{../gbif|5369702 |present in NY|present in New York State}} | usda = {{../usda|GEVI4 |NN|}} <!-- ========= --> | col-id = | pow-id = | wfo-id = | vascan = | gobot = geum/virginianum | its-id = 24665 | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum virginianum iNat-146376349 (2x3).jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum macrophyllum | au-abbr = Willd. | au-full = | au-pub = Enum. Pl. Hort. Berol. 2: 557 (1809) | var0 = macrophyllum <!-- -- --> | syns = {{../sp-1|1809|'''Geum macrophyllum'''|Willd.}} {{../sp-1|1910|Geum fauriei |H.Lév.}} {{../var1|1915|Geum japonicum |Thunb. |sachalinense |Koidz.}} {{../var1|1924|Geum japonicum |Thunb. |fauriei |(H.Lév.) Kudô}} {{../sp-1|1926|Geum sachalinense |(Koidz.) Makino}} {{../var1|1952|Geum macrophyllum |Willd. |sachalinense |(Koidz.) H.Hara}} {{../var1|1953|Geum aleppicum |Jacq. |sachalinense |(Koidz.) Ohwi}} {{../var1|1967|Geum perincisum |Rydb. |intermedium |B.Boivin}} {{../ssp1|1982|Geum macrophyllum |Willd. |fauriei |(H.Lév.) Vorosch.}} <!-- -- --> | en1 = Largeleaf avens | en2 = Large-leaved avens <!-- -- --> | status = Native | status1 = Endangered | c-rank = 8 | nynhp = [https://guides.nynhp.org/bigleaf-yellow-avens/ S1] | nwi1 = FACW | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = S1, G5 <!-- ========= --> | nyfa = {{../nyfa|2663|10 counties|Chenango, Essex, Orange, Orleans, Otsego, Saratoga, Steuben, Ulster, Warren, Yates}} | inatc = {{../inat|77266|Delaware, Ulster |Delaware, Ulster Counties}} | gbifc = {{../gbif|5369784|present in NY|present in New York State}} | usda = {{../usda|GEMAM|NN|}} <!-- ========= --> | col-id = | gbif = | inat = | pow-id = | wfo-id = | vascan = | gobot = geum/macrophyllum | its-id = | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Geum macrophyllum 202912270.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum urbanum | author = L. <!-- -- --> | syns = {{../sp-1|1753|'''Geum urbanum''' |L.}} {{../sp-1|1771|Caryophyllata urbana |(L.) Scop.}} {{../sp-1|1794|Caryophyllata officinalis |Moench}} {{../sp-1|1840|Bernoullia media |Raf.}} {{../sp-1|1893|Geranium pseudomolle |(Pant.) B.D.Jacks.}} {{../ssp1|1974|Geum rivale |L. |urbanum |(L.) Á.Löve & D.Löve}} <!-- -- --> | en-vns = Town avens <br> Herb Bennet <br> Bennet's root <br> Wood avens <br> Clove-root <br> Colewort <br> St. Benedict's herb | fr-vns = Benoîte commune <!-- -- --> | status = Introduced | status1 = Invasive | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = | ns-rank = <!-- ========= --> | nyfa = {{../nyfa|2725|7 counties|Cayuga (2006), Lewis (2026), Monroe (1989), Onondaga (1988), Orange (1990), St. Lawrence (1997), Yates (2021)}} | inatc = {{../inat|55891-Geum-urbanum|22 counties|}} | gbifc = {{../gbif|||}} | usda = {{../usda|GEUR|XX|}} <!-- ========= --> | col-id = | gbif = | inat = | pow-id = | wfo-id = | vascan = 8776 | gobot = geum/urbanum | its-id = 24663 | ars-id = 17518 | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = Geum%20urbanum | map = Geum urbanum nymap.svg | image1 = 20130617Geum urbanum.jpg }}<!-- ================================================================================ --> {{../end table}} ===''Geum'' hybrids=== {{../txt |img=Geum xcatlingii comparison.jpg |cap=''Geum × catlingii'' (center),<br>''Geum canadense'' (top right),<br>''Geum urbanum'' (bottom) | }} {{../table|order=Rosales|Rosaceae|Rosoideae|Colurieae||Geum| }}<!-- ================================================================================ --> {{../genus|Geum|Avens|886|10|author=L. }}<!-- ================================================================================ --> {{../taxon | species = Geum × aurantiacum | au-abbr = Fr. ex Scheutz | au-full = | au-pub = Prodr. Monogr. Geor.: 30 (1870) <!-- ========= --> | hp1 = Geum aleppicum | hp2 = Geum rivale <!-- ========= --> | syns = 1870. '' '''Geum × aurantiacum''' ''Fr. ex Scheutz in Prodr. Monogr. Geor.:30 <!-- ========= --> | en-vns = Orange avens <br> Hybrid yellow & purple avens <br> Hybrid yellow & water avens <!-- -- --> | status = Native | status1 = Unranked | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|6510|Onondaga (1942)|Onondaga (1942, M.E. Faust & N.M. Sadler)}} | inatc = {{../inat|170751|no NY observations|0}} | gbifc = {{../gbif|5370010|not present in NY|not present in New York State}} | usda = {{../usda|GEAU2|NN|}} <!-- ========= --> | col-id = 8V8DS <!-- Geum × aurantiacum Fr. ex Scheutz --> | gbif = <!-- Geum ×aurantiacum Fr. ex Scheutz --> | pow-id = 725183-1 | wfo-id = | vascan = | gobot = geum/aleppicum | its-id = 24648 | ars-id = | fna-id = | tro-id = | ipn-id = | nse-id = | bna-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ================================================================================ --> {{../taxon | species = Geum × cortlandicum | au-abbr = M.Hough | au-full = | au-pub = Phytoneuron 2018-59: 1 (2018) <!-- -- --> | hp1 = Geum canadense | hp2 = Geum laciniatum <!-- -- --> | syns = 2018. '' '''Geum × cortlandicum''' ''M.Hough in Phytoneuron 2018-59:1 <!-- -- --> | en-vns = Cortland avens <br> Hybrid white & rough avens <!-- -- --> | status = Native | status1 = Unranked | status2 = | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7655 |Cortland, Seneca |Cortland (2018), Seneca (2018)}} | inatc = {{../inat|954291 |Cortland, Seneca |Cortland (2018, 2020), Seneca (2018)}} | gbifc = {{../gbif|10716832 |Cortland, Seneca |Cortland (2018, 2020), Seneca (2018)}} | usda = {{../usda|||}} <!-- ========= --> | col-id = 6KFVW | gbif = | inat = | pow-id = 77203992-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ================================================================================ --> {{../taxon | species = Geum × hainesianum | au-abbr = M.Hough, A.V.Gilman & Chapm.-Lam | au-full = | au-pub = 2021. Geum x hainesianum (Rosaceae), a new hybrid avens from eastern North America. Rhodora 123(993): 67-84. <!-- ========= --> | hp1 = Geum aleppicum | hp2 = Geum canadense <!-- ========= --> | syns = 2022. '' '''Geum × hainesianum''' ''M.Hough, A.V.Gilman & Chapm.-Lam in Rhodora 123: 13 <!-- ========= --> | en-vns = Haines’s avens <br> Hybrid yellow & white avens <!-- ========= --> | status = Native | status1 = Unranked | c-rank = | nwi1 = | habit0 = | habit1 = | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7613 |Tioga (1942)|Tioga (1942, R.T. & E.R.Clausen)}} | inatc = {{../inat|1426000 |Cortland (cultivated)|Cortland (2021, cultivated by M. Hough)}} | gbifc = {{../gbif|12231213|not present in NY|not present in New York State}} | usda = {{../usda|||}} <!-- ========= --> | col-id = B2Y5W | pow-id = 77309022-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ================================================================================ --> {{../taxon | species = Geum × catlingii | au-abbr = J.-P.Bernard & R.Gauthier | au-full = | au-pub = Naturaliste Canad. 113: 321 (1986) | hp1 = Geum canadense | hp2 = Geum urbanum <!-- -- --> | syns = 1986. '' '''Geum × catlingii''' ''J.-P.Bernard & R.Gauthier in Naturaliste Canad. 113:321 <!-- ========= --> | en-vns = Catling's avens <br> Hybrid white & town avens <!-- ========= --> | fr-vns = <!-- ========= --> | status = Introduced | status1 = Naturalized | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7614 |Cortland (2016) |Cortland (2016, M. Hough)}} | inatc = {{../inat|170752 |9 NY counties |Cayuga, Chautauqua, Chemung, Cortland, Erie, Monroe, Onondaga, Schuyler, Tompkins}} | gbifc = {{../gbif|5369947 |present in NY |present in New York State}} | usda = {{../usda|GECA17 |N?|}} <!-- ========= --> | col-id = BS9BV | pow-id = 931308-1 | wfo-id = | vascan = | gobot = | its-id = | ars-id = | fna-id = | tro-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | cpc-id = | cab-id = | eol-id = | kew-id = | map = nymap.svg | image1 = Geum xcatlingii fl.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum × intermedium | au-abbr = Ehrh. | au-full = | au-pub = Beitr. Naturk. Verw. Wiss. 6: 143 (1791) <!-- ========= --> | hp1 = Geum rivale | hp2 = Geum urbanum <!-- ========= --> | syns = <poem> 1791. '' '''Geum × intermedium''' ''Ehrh. in Beitr. Naturk. Verw. Wiss. 6:143 1800. '' Geum urbanum intermedium ''(Ehrh.) Willd. in Sp. Pl., ed. 4. 2: 1114 1812. '' Geum urbanum ''var. ''intermedium ''(Ehrh.) Mérat in Nouv. Fl. Env. Paris:198 1825. '' Geum rivale ''var. ''intermedium ''(Ehrh.) Ser. in A.P.de Candolle, Prodr. 2:551 1834. '' Geum rivale ''ssp. ''intermedium ''(Ehrh.) Schübl. & G. Martens 1836. '' Geum × rivale-urbanum ''G.Mey. in Chloris Han.:39 (not validly publ.) 1841. '' Geum × willdenowii ''J.N.Buek bis in Fl. March.:595 1860. '' Geum × intermedium ''var. ''willdenowii ''(J.N.Buek bis) Asch. in Fl. Brandenburg 1:179 </poem> <!-- ========= --> | en-vns = Intermediate avens <br> Hybrid purple & town avens <!-- ========= --> | status = Introduced | status1 = Naturalized | status2 = | imap = | ipa-us = | griisus = | ny-tier = | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA | ns-rank = <!-- ========= --> | nyfa = {{../nyfa|7656 |Cortland (2018) |Cortland (2018, M. Hough)}} | inatc = {{../inat|628500 |Cayuga, Cortland |Cayuga (2018, 2021), Cortland (2018-2023), Madison (2023, not RG yet)}} | gbifc = {{../gbif|5369692 |Cayuga, Cortland |Cayuga (2018, 2021), Cortland (2018-2023)}} | usda = {{../usda|||}} <!-- ========= --> | col-id = 7VQST | pow-id = 725266-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Geum × intermedium 002.jpg }}<!-- ================================================================================ --> {{../taxon | species = Geum × macneillii | au-abbr = J.-P.Bernard & R.Gauthier | au-full = | au-pub = Naturaliste Canad. 113: 321 (1986) <!-- -- --> | hp1 = Geum laciniatum | hp2 = Geum urbanum <!-- -- --> | syns = 1986. '' '''Geum × macneillii''' ''J.-P.Bernard & R.Gauthier in Naturaliste Canad. 113:321 <!-- -- --> | en-vns = McNeill's avens <br> Hybrid rough & town avens <!-- -- --> | status = Introduced | status1 = Naturalized | status2 = | imap = | ipa-us = | griisus = | ny-tier = | c-rank = | nwi1 = | habit0 = Perennial | habit1 = Herb-forb | light = | chro-no = | ny-rank = SNA, GNA <!-- ========= --> | nyfa = {{../nyfa|7657 |Cortland (2018) |Cortland (2018, M.Hough)}} | inatc = {{../inat|975912 |Cayuga, Cortland |Cayuga (2021), Cortland (2019-22)}} | gbifc = {{../gbif|5369940 |Cayuga, Cortland |Cayuga (2021), Cortland (2019-22)}} | usda = {{../usda|||}} <!-- ========= --> | col-id = CDBGY | pow-id = 931307-1 | wfo-id = | fsus = | vascan = | gobot = | its-id = | ars-id = | fna-id = | fna-i1 = | fna-i2 = | tro-id = | nwg-id = | ipn-id = | lbj-id = | nse-id = | bna-id = | bbg-id = | cpc-id = | cab-id = | eol-id = | red-id = | mbg-id = | adf-id = | fed-id = | fws-id = | bug-id = | map = nymap.svg | image1 = Ny hybrid.svg }}<!-- ------------------------------------------------------------ --> {{../end table}} {{BookCat}} nxd476e5rojdhkwgeg4p7bxh5p8alyd User talk:Jst.frank 3 359670 4668411 4593062 2026-09-03T15:38:58Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668411 wikitext text/x-wiki == Times prophet - the world leader in human tutor ----fangruida biography. == -Times prophet - the world leader in human tutor --fangruida biography https://www.flickr.com [[File:Https://www.flickr.com|thumbnail|https://www.flickr.com]] https://www.pinterest.com [http://www.academia.edu/5565115/Prof_fangruida_bio www.academia.edu/5565115/Prof_fangruida_bio] [http://www.zwbk.org www.zwbk.org] https://archive.org [[article.wn.com/view/1999/03/31/Notable_Quotes]] [http://www.search24news.com/googleapis www.search24news.com/googleapis] [[File:Celebrity world,world famous:prof.ruida-Fang - YouTube|thumbnail|celebrity world,world famous:prof.ruida-Fang - YouTube]] Many tens of thousands of the world's prominent figures, including politicians, military strategist, religious guru, philosopher, literary master, master of science, culture and masters, artists, inventors everyone, thinkers, business leaders, industry leaders, religious leaders , spiritual leader, and so, in the history of mankind far-reaching impact is huge. From the history of our world and the general history of world civilization, the history of development of the universe, the history of social development can glance.  Outstanding figures for the development of human history, indeed have a significant impact and historical role, which is, no one is undeniable. However, the world and history in essence, is the history of the creation of millions of people, rather than individual saints for the emperor. Role of the individual is limited after all, insignificant, and very great strength unmatched by millions of people. Ye gods, the emperor worth mentioning God or gods, after all, can not replace the millions of people struggling to make history million. Individuals and groups to have their own significance extraordinary.    As the 21st century figure, square Rita worked in East and West and the world of work and study, his body covered with a deep mark on all countries in all nations of the world civilization. He never stick to themselves, but out of narrow self-earth, step by step towards a vast natural paradise and the vast world of boundless Wuzhou universal, so called the cognitive channel for people around the world. Originally used as a natural scientist, astronomer, physicist, cosmologist, mainly Without Borders, called the real world citizens. He is a philosopher, thinker, religious scholars, writers, artists, economists, inventors, educators, engineering and technical experts, physicists, astronomers, cosmologists, who look at the world of humanity. However, he never put himself deified as Superman, genius, he has always believed: that he is a very ordinary person, absolutely no superhuman powers that he is just a constant hard work never farmer only. Uphold and he firmly believes that a world without Superman. He believes that the world is full of competition and challenges, but he strongly opposed the creation of great-power chauvinism and personal history of ridiculous. From a natural scientist, it should be fair trade, equality, freedom, justice, democracy, flashed on him from time to time. And those vulgar and absurd argument heart wants to concoct historical ignorance and delusions him gone. This is his most precious legacy of the greatest greatness. Also his greatest charisma. He is an ordinary person, at the same time, he would be a great person. His extraordinary in the world, but he always insisted: the world was giving him inspiration, everything comes from the world, without the world, everything is turned into nothing. Regardless of Western civilization, or the Oriental civilization, European civilization, the Arab civilization, he is studying in the body, always keep in mind. Moreover, compatible sharing basis, combing and rational criticism. He would never indiscriminate white, gulping, which is very rare historical criticism of his spirit. Thus more attractive history and age. He is not as all-powerful military stage in the political arena, anything they want, but in the world and where people turn a blind eye and continue to awaken the people of the world, therefore, be able to leave a deep and indelible and beautiful illusion of millions of people in the world, the heart of the traces. His ideological realm and Putian to benefit others charm is hard to replace and presumptuous. == Bold text == * '''<code>text<big>Big text</big></code>''' 79je250zekmrz1x69vi7kdcviuh5lkz User talk:Gbswom 3 364881 4668347 3002180 2026-09-03T14:35:42Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668347 wikitext text/x-wiki == <code>Heading text</code> == Eye of God in human history's (Fangruida artcles) #REDIRECT [[[http://www.academia.edu/9604713/FangRuida_science_research www.academia.edu/9604713/FangRuida_science_research]]] independent.academia.edu/TszMarlon[http://independent.academia.edu/TszMarlon independent.academia.edu/TszMarlon] greatest pioneering history of the world's most brilliant picture, the natural splendor of the universe's greatest landscape ----- 30 most significant scientific universe's most cutting-edge technology research and development project (/ Heavy News No. // outside) ------------------------------- No big news outside / Heavy news ----- Eye of God in human history's greatest pioneering history of the world's most brilliant picture, the natural splendor of the universe's greatest landscape ----- 30 most significant scientific universe's most cutting-edge technology research and development projects // No big news outside / Heavy news Space Science 30 major cutting-edge technology research and breakthroughs, the commercial value of hundreds of trillions and huge profits      21-22 century science and technology advances, brewing a major breakthrough in all areas. In the field of cutting-edge technology, aerospace engineering to bear the brunt, most important, led the way, an extremely important area for future development of human society. In a sense, it will completely change the rewrite human history and natural history of the universe. Particularly with regard to Mars landing, establishing a lunar base, the Moon of Earth, Mars, the planet of the countries in the world put a lot of manpower, material and financial resources to develop the breakthrough Figure in cosmic science. Mars landing probably need to invest billions of dollars to, or less, if the budget billions of dollars can also be piloted. Simple lunar base only about several hundred billion dollars to the initial shape. The large-scale transformation of the moon, Mars transform costly, it can not be said to astronomical, but it also needs tens of trillions of dollars. Save some estimates, at least invest between $ trillions and tens of trillions of dollars. Of course, technically feasible, the return naturally considerable, about investment profits worth hundreds of times, this is self-evident. Water temperature, air is the most important prerequisite for the existence of life. Planet trillions of kilometers away, rather than the Earth, very, difficult to imagine in the north and south. The most critical scientific research is Earth, the Moon, Mars or other planets countless whether absolute 'homogeneity', or 'heterogeneity', which is the major issue of great concern to scientists. Space science and technology major cutting-edge technology are many, but the most important to solve the most urgent of the most critical include the following 30 top cutting-edge technology. The following are described as follows: "design, drawings, patents, know-how, formulas, processes, materials, etc.). Aerospace science and technology, space technology high investment, high risk, therefore, very important systems integration technology, safe, reliable and feasible, low-cost, otherwise, even the best technical drawings also will become a dead letter, shelved, it is the success of R & D The key lies. Thus, R & D 30 cutting-edge technology can be streamlined to save, for example, simulation, simulation, simulation design, simulation, design, and so on, with high high high intelligence capability means a significant reduction in a variety of research costs. For example, the spacecraft design, spacecraft dynamic design, automatic control, new materials, Mars geology, etc., greatly reducing the development costs. Mainly to solve the major cutting-edge technology, including (1) the planet water synthesis. Regardless of the moon or Mars, water is undoubtedly the source of life. Overcome difficulties water is primary sophisticated high-end technology. Water Planet manufacture of synthetic technology. As long as this technology breakthrough, it means that the human world greatest success. Of course, there are in-depth exploration and mining of groundwater resources of the planet, there may be possibilities. (2) Preparation of air oxygen composite technology. This is not very difficult. (3) temperature, energy technologies. This technique has difficulty factor, but not very obvious. (4). Speeding spaceship energy technology. The new spacecraft. (5). A full life support systems technology. (6). Biosystems survival techniques. (7). Cosmic radiation radiation technology and specialty materials. Special space suits. This technique also requires breakthroughs. (7) Space instant messaging technology. (8) Super energy accumulator technology / space solar energy machine technology. (9). Universe mineral mining technology. (10) Air, water, energy recycling technology. Recycling technology. (11). Living Planet warehouse full set of technology, security technology; universe warehouse full technical work; universe outside warehouse full set of technology and other sports activities. (12) moon base, Mars base life support backup system. Moon base, Mars base complete set working system. System is divided into A, B, C multi-class "A system >>, << B system." >> << C systems, as well as spacecraft safety emergency system, automatic emergency system, the spacecraft, the astronaut rescue system, automatic escape system and so on. (13) Space Biomedical, human health care system. Universe biomedical technology, especially under extreme conditions of human survival health technologies. Universe Planet emergency medical drugs medical equipment systems. Under (14) in extreme environments, extreme changes in the minimum guarantees under life and maintain the system. (Fifteen). Planet food manufacturing and regeneration system. (16). Cosmic super telescope, the moon or Mars, the solar cosmic prism. (17) Mars moon automatic engineering vehicles, aircraft Planet (18) Ultra features high capacity shuttle cargo spacecraft (19) Space technology Geological acquisition system (20). Super computer technology, special high-performance large-scale computer and its system software used in the art universe, applications, etc. (21). Universe relay transmission technology. Planet universe interstellar advanced communication technology (22). Spaceship stars technology universe automatic return (1,2 backup system, the spacecraft landed on Mars and Mars spacecraft automatically return technology), the spacecraft automatically return midway technology. (Matching) (23). Large construction vehicles lunar / Mars large construction vehicles. (twenty four). Moon buggy / Mars buggy. Distance long distance movement. (25) planet survive unforeseen technical (reserve system). (26) Space science experimental techniques. (27) the planet human life necessary processing technology and other related technology integration. (28) the planet long lived and extend the system, the extension system, soil cultivation technology and other planets. (29) Planet intelligent robot operating system. (30) Planet person spiritual and cultural life support systems. Universe and numerous other top technology integration sophisticated convergence, and so on. Regardless of the Moon, or Mars, they are inseparable from these high precision and advanced technology. Including drawings, designs, patents, industrial testing and other aspects. Mars alone or set up a small base on the moon, you can Shanfanjiujian not need all, choosing the few on it. Sophistication, practicality, feasibility, reliability, economy, one of five, reliability, economy and try. However, due to apply technology beyond the Earth, often subject to the limitations of the Earth developed, therefore, need to develop redundancy design, technical margin maximum advisable to prepare for any eventuality and the risk of accidents.     30 great tip top space science and technology, the commercial value of $ 20 trillion directly. Development costs 3-10 trillion, design fees 1000-5000 billion, technology transfer fee of US $ 30-50 trillion (International Patent Application), economic value and technology of inestimable scientific value is estimated at 7000000000000000 dollars or more. Short-term benefits are directly on top of hundreds of billions of dollars. "The main technical drawing class technology for the patented formula diagram, according to the World international patent drawings, multi-language, in English format, machinery except electrical and electronic maps detail. Transfer only patented formula class drawings. Technical trading fee separately trader di fixed. "As described above, the establishment of a lunar base or direct to Mars, the human from the present technical and economic investment has been basically feasible, is not elusive thing. Just a matter of time. The transformation of Mars, the moon or other planets transformation is not something foreseeable future. Only need to maturity of the related art and other prerequisites. Space technology has developed rapidly, it has many features, (1), space technology is highly integrated modern science and technology, it is the integration of many of the latest achievements of science and technology, including jet technology, electronics technology, automation technology, remote sensing technology, materials science , computer science, mathematics, physics, chemistry and so on. (2), space technology is the country's modernization and social progress of science and technology has a macro effect. Since the spacecraft speed, operating altitude is high, it is possible to quickly cover a wide range of Earth's surface. For example, by making satellite TV network covering the whole country until global; meteorological satellites can be global weather forecasts, including long-term weather forecasting; reconnaissance satellites can detect military activities in various regions of the world and so on. That many of which are conventional means can not be done. (3) is a high input, high efficiency, high-risk business. (4) space technology, also known as the Aerospace Science and Technology, various high-tech enrichment, 21-22 century, human society is the greatest practice space, is a concentrated expression of the country's most powerful. He is different from nuclear weapons, aircraft and the like, are mainly used for peaceful purposes (of course, also contain a component of military strategy exists). Strictly speaking, aerospace technology actually is a "Living Planet recycling technology," the cradle of humanity second, recreating a planet, recycling several earth, very grand, for example, the moon of Earth, Mars, Earth-based and so on. So, in the long term macro-economic value, the commercial value is simply astronomical, far beyond the initial investment in humans. A planet, how much the value of trillion dollars? ? ? Space race, moon, Mars is the natural choice for the planet. Huge investment, works hard, a lot of risk, consuming hundreds of years or even decades for thousands of years is possible. (This is a large program, not a small program, micro planned size of the scale of investment, the difficulty, there is a great difference time-consuming, must not be confused. Notice, Mars and safely to and from Mars base and construction of small and large-scale Mars Reconstruction is not the same thing, a small lunar base construction and large-scale transformation of the Moon is also not the same, there is a big difference between the two. Do not fish, to no avail, a big mistake.) So, feasible and reliable economic It is the most sensible choice. Planning for the planning, real return reality, are not mutually reversed. Despite the high risk and high investment, aerospace technology, space technology is inevitable in the face of mankind and significant challenges inescapable reality, I would like to take shortcuts, hype, is tantamount to nonsense. The bill does not automatically float down from the sky; humans are not in vain to the sky sprinkle money. We have lost income only, there is only the loss of income. Mars moon // overall planning / cost: (A) a large transformation immigrant 150-300 trillion dollars (B) the transformation of immigrant 20-100 trillion dollars SMEs (C) miniature reconstruction small bases 1-10 trillion dollars (D) Mars / Moon base 100-1500 billion dollars Inner planet large storage warehouse expansion project Planet Planet engineering works outside the expansion project X1 project x2 x3 project project project x5 x4 project (sub-project, subproject) Planet Water Planet oxygen supply workstation workstation workstation planet living planet energy supply station planet plant cultivation stations planet solar, nuclear safeguards workstation workstation planet Biomedical Contact Planet Planet culture communication station automated workstation planet shrouded planet automated workstation-based workstation planet moving spaceship repair and maintenance station Mars moon // overall planning / cost: (A) large immigrant 150-300 trillion dollar renovation several hundred thousands of years of time span, costly, long-term goal, is not feasible at this stage (B) SME transformation immigration 70 -120 trillion dollar long-term goals into a huge (C) miniature reconstruction small bases 1-10 trillion dollars into smaller, less risky, technically feasible, 100--200 years feasible (D) Mars / Moon 100-1500 billion dollars base technology tend to improve gradually, little investment, greater reliability, feasibility, risk, the commercial value of the larger 100 years can be achieved. C / D program is far superior to A / B program, D solutions for preferred best, if C / D program integration, is also a good choice. First of all, great savings, technology maturity overall feasible. Commercial value among them. Inner planet large storage warehouse expansion project Planet Planet engineering works outside the expansion project X1 project x2 x3 project project project x5 x4 project (sub-project, subproject) Planet Water Planet oxygen supply workstation workstation workstation planet living planet energy supply station planet planet solar plant cultivation stations, nuclear power stations planet Mars telescope biomedical protect workstations Contact Planet Planet culture communication station automated workstation planet shrouded planet automated workstation-based workstation planet moving spaceship space station repair and maintenance of high-performance cameras and so on. "Of course, this is a large transformation Mars / Moon reconstruction plan, the cost greatly; Junior Mars base / lunar base costs can be greatly reduced to hundreds of billions of dollars. Simply landing on Mars and return safely It is estimated that only about $ 100 billion, only the direct cost of ten billion US dollars needed to. Large research and development costs, hundreds of billions of dollars, while landing on Mars one way direct commercial costs about 10-20 million US dollars, two-way return direct commercial cost about 10-25 billion dollars. Overall R & D expenses and cost of spacecraft to Mars and from 7: hovering between 3. A conservative estimate, Mars and return safely to Earth, direct business costs are not more than ten billion US dollars. Mars immigrants, transforming Mars, the costs are much the size, the main distinction between plan size and scale, can not be generalized. Therefore, the above analysis, 100--200 years, C / D program is quite feasible, overhead costs will not be much; and A / B program cost too much, only after the goals and action. Simply build a lunar base and landed on Mars and a small safe return or the cost of the establishment of micro base on Mars is not much direct commercial cost is not too high, and larger profits and other commercial value. ----- Eye of God in human history's greatest pioneering history of the world's most brilliant picture, the natural splendor of the universe's greatest landscape ----- 30 most significant scientific universe's most cutting-edge technology research and development project (/ Heavy News No. // outside) ------------------------------- No big news outside / Heavy news ----- Eye of God in human history's greatest pioneering history of the world's most brilliant picture, the natural splendor of the universe's greatest landscape ----- 30 most significant scientific universe's most cutting-edge technology research and development projects // No big news outside / Heavy news (1). Powerful more advanced speeding moon landing spaceship, and from the earth between the moon ---- only takes a few days. Or just need dozens of hours (2) the Moon itself to gradually transform the living environment of use. (3) Energy. Solar energy, super moon solar batteries, generators, and space solar energy storage unit and the like. (4) Water is a basic condition for human survival. Recycling water, chemical synthesis of water, on geology, geological exploration moon. High circulating water utilization system. (5) Life Moon base (6) ground lunar soil structure design, planting plants. (7) to IM-month high density contact system. (8) large moon work positions. (9) The development and utilization of the moon's poles, the moon mineral exploitation. (10). Moon biology, human biology established to carry out the moon, to ensure that human health, resist overcome the planet's syndrome and so on. (11) The rapid development of modern science and technology, many difficult and yet humans solve puzzles, survive and build the lunar base, build a lunar village needs robust technical support viable technical support. For example, in search of water, human biological reactions, development of ultra-fast spacecraft, lunar oxygen system, the depth of the lunar bear the brunt of exploitation, etc., placed in front of us. (12) The new space suit, moon live and work clothing research and other research method uses technology and so on. (13) air security system moon, lunar oxygen, while the most powerful and most important key to the forefront of cutting-edge technology is des... == <code>Heading text</code> == 5kfzjo7pxed8q0223et0tt1it9ybeey User:EE JRW/sandbox 2 367026 4668285 3075811 2026-09-03T13:23:37Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668285 wikitext text/x-wiki == Forward == This is a work in progress. Step 1 is to get as many references into this book as possible. These references may be better placed in wikisource, but they are in this book for now. Only trusted references are used. That does not make these references true, it just means that they were made during the period of time when the events they describe occurred. modern references that refer to events that occurred 50 to 100 years ago are considered secondary and less trustworthy. Step 2 will be to pull information from these references and try to create a timeline of the events. == Introduction == One day while feeding the Elephant Child, I was looking into a claim from a coworker (whose family owned a small farm) that ethanol from corn was actually an energy sink. That lead me to cellulostic ethanol, who's pie in the sky claims I had been reading about for years, then to the history of cellulostic ethanol. There are many references to cellulostic ethanol that seem to have no evidence. After digging into some of these claims, I had amassed enough data that I decided to create this book so that the best of these references could be used to create a history of cellulostic ethanol. == Timeline == * 1819 - Henri Bràconnot is the first to create sugars from cellulose. Bràconnot published a method of converting woody fiber into fermentable sugar. Published in Annales de Chimie et de Physique on 4 novembre 1819 (Annals of Chemistry and Physics 4/11/1898). Bràconnot claimed to create more sugar than wood. * 1854 - Arnould publishes a treatise in Dingl. Journ. (134, 219). He claims to be able to transform 80-90% or certain woods into soluble product. * 1855 - Melsens writes 1855 in "Genie Industriel" about reducing the concentration of the applied sulfuric acid to 3-5% and shall follow the procedures mainly on manufacturing residues. He is the first who worked in an autoclave and temperatures up to 180 ° applying an end. * 1855 - Commercial plant in Paris under direction of the chemist Pelouze to produce alcohol from wood. This plant does not appear to have existed for many years. 1855 was founded in wood fiber under the direction of chemist Pelouze in Paris a factory for the manufacture of alcohol. But she did not seem to have long existed; because only once (1859), we find a reference by a publish Pelouze treatise (Dingl. Journ. 150, 394), which brings nothing really new. * 1867 Payen claimed to have obtained alcohol from the lignin contained in the wastes of the manufacture of paper, and Matthews claimed to have obtained fermentable dextrose from peat. 1867 published experiments of Payen on Cellulosc. You also assume the pulp representation by should be obtained from the lignin-containing black liquor as a byproduct alcohol. Dr. J. MattheuB wants to win fermentable peat dextrose. * 1894 - The Norwegian chemist Simonsen patented, in Germany, a process for the rapid saccharification of substances containing cellulose by treatment with weak acids (4/10 to 8/10 per cent) under a pressure of 7 atmospheres or more. Simonsen claimed yields of 6% (60 gramms of alcohol per kg of wood) On 2/12 1894 it patented (DRP 92079) in Germany the chemist Simonsen from Christiania a method for rapid saccharification of cellulosic materials with the help of 0.4-0.8% strength acids at 7 Atm. Pressures and above. The process should be completed in 10-30 minutes. Simonsen won from 1 kg wood 60g Alcohol, ie an over earlier specifications rocht modest yield. * 1898 - In 1898 Simonsen published the results of experiments on the influence of pressure, time, and the quantities of water and acid employed in the inversion of substances containing cellulose. Simonsen claimed a 5% yield In the spring of 1898 a longer work of the above-mentioned inventor in Germany became known. She was rewarded by the polytechnic clubs to Christiania with a gold medal and through this magazine (II, 195 [1898]) * 1890's - Classen experiments. After successful experiments in a test plant erected by Classen in Aachen * 1898 - Classen erects pilot plant in Aachen [unverified] * 1899 - Classen gets patent On February 15, 1899 the Dr. Alexander Classen from Aachen was the first patent on a Holzverzuckerungsverfahren issued (DRP 118 868). It is strongly pressing a mixture of sawdust and sulfuric acid by 57 ° Be. The mass is heated by itself, is then crushed and boiled with water. 1900 - Classen gets three more patents This is followed by three patents of 12 /. 5 1900 (D. R. P. 118 542, 118 543, 118 544). The first is that you heat the wood substances with hydrogen chloride in an autoclave and then importing sulfuric acid to form sulfuric acid. The second patent will the yield of sugar increased due to heating the raw material with sulfur dioxide and then initiates the formation of sulfuric acid chloride. The third patent is that the mixture is heated until the sawdust with sulphurous acid and introduced to their conversion into sulfuric air or oxygen. * 1901 Gentzen and Roth patented the employment of ozone for the purpose of converting lignin into fermentable sugar and destroying substances which prevent fermentation. * 1900-1903 Lignum Inversion Company purchases patent rights and erects experimental plant at Highland Park. Illinois [Unknown exactly when this plant was built] The following is from The Iron Age 1903 For three months the factory at Highland Park was placed under the direct control of Dr. John H. Long, Professor of Chemistry in the Northwestern University, Chicago, and president of the American Chemical Association. Professor Long states that he had no question that the product is really as good as grain alcohol. After professor Long's retirement, management passed into the hands of Otto Sjostrom, a German chemist and assistant to Professor Classen, under whose direction much of the work at the original plant erected at Aix-la-Chapelle was carried on. * 1903 Classen Lignum Company. The Lignum Inversion Company of Chicago, with a capital stock of $110,000, is the organization which has secured the Classen patents in the United States, and under whose direction all work in this country thus far has been accomplished. J. M. Ewen of Chicago is president, and J. K. George of London managing director. A number of wealthy and influential business men of Chicago, Pittsburgh and New York have become interested in the company, as well as large saw mill interests in Mississippi. It is understood that the Lignum Inversion Company is soon to be converted into the Classen Lignum Company, with a capital stock of $2,500,000, and arrangements will be shortly completed for the erection of a plant for the manufacture of alcohol by the Classen process, with a capacity of 100 tons per day, at a point in the South, and a contract has been signed for the erection of another plant of equal capacity in Northern Michigan. *1905 - In 1905 Boernen obtained an English patent for a process employing 5 per cent solutions of caustic alkalies at about 90 deg. P., and boiling the liquid after the unaffected residue of the wood has been removed by filtration. In 1905 (8 / G.) Was the Kaufmann Arno natives of Vienna in England granted a patent for the presentation of sugar from cellulosic materials. * 190? - Classen Lignum Company erects full scale plant in Hattiesburg, Miss. at a cost of $250,000. This plant never functions successfully. The following is from Scientific American Supplement 1910 The results were so satisfactory that a. larger plant on a commercial scale was erected at Hattiesburg, Miss. The plant built in the United States, which is reported to have cost for building and working for a year about $250,000, has not been used for some time. Two chemical engineers, Malcolm F. Ewen and G. H. Tomlinson, who were associated with the Classen process, both in Germany and the United States, finding the original process unlikely to prove a commercial success, obtained substantial financial aid from a Chicago engineer, Mr. J. M. Ewen, and in 1904 began experimenting along new lines to overcome the difficulties which prevented the old process from being a success. This process, by the courtesy of the patentees, l was enabled to study in June, 1909, at Chicago Heights, about 20 miles from the city of Chicago. The plant was erected by the Wood Waste Products Company. now called the Standard Alcohol Company, which has control of the Ewen-Tomlinson patents. This experimental plant was composed of units of commercial capacity, and was set up in workshops in the grounds of a large machinery manufactory. In the plant now being built for the Du Pont Powder Company at Georgetown, S. C., it is probable that there will be three or four converters, egg-shaped or spherical, and capable of taking four to five tons at one charge. In France there is in operation another process for the manufacture of ethyl alcohol from wood waste. I know nothing of this process beyond an account of it which appeared in the General Electric Review of September, 1909, by G. U. Borde. A plant is being erected to use this French process at Hadlock, Wash., and another is proposed for some place in Ontario. == References == All references are PD-1923 All references must be verifiable. === 1819 === Braconnot <BR> Annales de Chimie et de Physique 12: 172-95<BR> Excerpt<BR> English translation from Google Translate<BR> ==== Annales de Chimie et de Physique (French) ==== Mémorie sur la conversion du corps ligneux en gomme, en sucre, et en acide d'une nature particuliére, par le moyen de l'acide sulfurique; conversion de la meme substance ligneuse en ulmine par la potasse Par Henri Bràconnot. (Lu à la Société royale académique des Sciences, etc. de Nancy, le 4 novembre 1819.) Les anciens chimistes se sont contentés de répéter que l'action de l'acide sulfurique concentré sur les substances végétales se bornait à les charbonner. Parmi les modernes, M. Berthollet a pensé que l'hydrogène de la substance végétale s'unit à l'oxigène de l'acide sulfurique , et qu'en formant ainsi de l'eau et de l'acide sulfureux , le principe charbonneux se sépare et se précipite. MM. Fourcroy et Vauquelin cherchèrent ensuite à répandre plus de clarté sur ce phénomène (1). Ils admirent qu'il ne se dégage point d'acide sulfureux , et donnèrent une théorie ingénieuse , mais qui ne semble pas établie sur des preuves bien rigoureuses. En examinant les changemens remarquables que les composés organiques subissent par l'action de l'acide sulfurique, j'ai été conduit à des résultats bien différens de ceux obtenus par ces illustres chimistes, et je me persuade que les principaux faits que je vais présenter contribueront à jeter une vive lumière sur plusieurs phé nomènes de la végétation, et pourront trouver d'utiles applications aux arts. <i>Action de l'acide sulfurique sur la sciure de bois de charme.</i> 20 grammes de sciure de charme bien desséchée on été arrosés à froid avec de l'acide sulfurique du commerce (I) ; on a agité le mélange avec un tube de verre; il s'est fortement échauffé , et , conformément à la théorie de M. Berthollet , le gaz acide sulfureux s'est dégagé avec impétuosité ; la sciure est devenue noire et semblait être à l'état de charbon ; mais elle n'en avait que l'apparence. J'ai versé sur le tout une certaine quantité d'eau; j'en ai séparé la poudre noire, qui, desséchée et ensuite projetée dans le feu , a brûlé avec flamme. Elle ne colorait pas sensiblement l'eau froide; mais elle a communiqué à l'eau bouillante et aux dissolutions alcalines une couleur brune foncée. Elle était à-peu-près dans le même, état que l'aurait été la sciure exposée pendant quelques années à l'air et à l'humidité. La liqueur acide , qui était presque incolore comme de l'eau, après avoir été saturée avec du carbonate de chaux , a fourni par l'évaporation une matière gommeuse jaunâtre dans la dissolution de laquelle le sous-acétate de plomb a formé un magma blanc fort abondant. Cette matière gommeuse , traitée par l'acide sulfurique affaibli , a fourni de l'acide acétique , et a précipité du sulfate de chaux. J'ai répété l'expérience avec 16 grammes de sciure; mais, au lieu de verser l'acide sulfurique sur toute cette quantité, je l'ai broyé par petites portions, en ajoutant peu à peu l'acide : malgré ces précautions, il s'est encore; dégagé de l'acide sulfureux; mais j'ai obtenu un mucilage très-épais, tenace, que j'ai délayé dans une certaine quantité d'eau, et j'ai filtré à travers un linge; il est resté une matière insoluble noirâtre, du poids de 5 grammes, à-peu-près semblable à celle de l'expérience précédente ; la liqueur acide, saturée par la craie, puis évaporée, ai fourni près de 10 grammes d'une gomme d'un brun rougeâtre. Comme MM. Fourcroy et Vauquelin disent, dans leur Mémoire, que les substances végétales ne décomposent pas à froid l'acide sulfurique , j'ai pensé que ce dégagement d'acide sulfureux devait au moins être fort rare; en conséquence j'abandonnai aussitôt la sciure de charme. Pour mieux apprécier les résultats , je me disposais à préparer la matière ligneuse ; mais trouvant de la difficulté pour l'amener à un état de pureté parfaite , je trouvai beaucoup plus commode de me servir de chiffons de toile de chanvre que l'on trouve par-tout , -et que l'on peut considérer comme une matière ligneuse pure : au reste, toute autre espèce de corps ligneux aurait pu donner des résultats analogues. <i>section de T acide sulfurique sur la toile de chanvre usée.</i> 25 grammes de toile de chanvre, coupée en petits morceaux, ont perdu, à la chaleur, un gramme d'eau hygrométrique. J'ai mis cette toile dans un mortier de verre, et l'ai arrosée à plusieurs reprises avec 34 grammes d'acide sulfurique , en ayant soin d'agiter continuellement le mélange avec une forte baguette de verre, pour que l'acide pénètre aussi uniformément que possible toutes les parties de la toile , et de mettre un intervalle assez long entre chaque addition d'acide pour que la chaleur qui se développe soit entièrement dissipée : il ne s'est point dégagé le moindre indice d'acide sulfureux. Un quart d'heure apres que le mélange a été fait , je l'ai broyé avec un pilon de verre; tout le tissu du linge a disparu, et il en est résulté une masse mucilagineuse extrêmement tenace , poissante , homogène- et peu colorée, que j'ai abandonnée pendant vingt-quatre beures. J'indique ces précautions pour obtenir de plus beaux produits; car, de quelque manière qu'orj s'y prenne , il ne se dégage point d'acide sulfureux , et il ne se dépose aucun indice de matière d'apparence charbonneuse. Cette masse mucilagineuse s'est entièrement dissoute dans l'eau , à l'exception d'une matière amiliforme, du poids de 2,5 grammes après sa dessiccation , et qui n'était qu'une portion du linge qui n'avait pas éprouvé une profonde altération de la part de l'acide sulfurique. Cette masse mucilagineuse, ainsi étendue d'eau , a été saturée avec de la craie ; filtrée à travers un linge, elle était claire et n'avait qu'une trèslégère couleur ambrée : après avoir eu soin de bien laver le filtre et d'exprimer fortement le sulfate de chaux, j'ai réuni les liqueurs et les ai fait évaporer en consistance d'un sirop qui était moins coloré que celui de capillaire : il s'est encore séparé une petite quantité de sulfate de chaux par Je refroidissement. J'ai continué l'évaporation avec ménagement jusqu'à siccité , et j'ai obtenu une gomme transparente , peu colorée : elle pesait 26,2 grammes qui ont été fournis par 21, 5 grammes de toile , déduction faite d'un gramme d'humidité, plus 2,5 grammes de matière ligneuse amiliforme. Je ne dois pas omettre que le sulfate de chaux résultant de la saturation, quoique bien lavé, retenait encore de la matière végétale ; car, exposé au feu , il a pris une couleur brunâtre et a répandu une odeur d'acide sulfureux- Comme il était à présumer que cette augmentation remarquable de poids ne pouvait être due qu'à une fixation des élémens de l'eau ou de l'acide sulfurique, pour chercher à vérifier si ce soupçon était fondé, j'ai fait dissoudre dans l'eau 5 grammes de cette gomme artificielle ; j'y ai ajouté de l'acide oxalique pour précipiter la chaux qu'elle retenait en combinaison , et qui peut aussi en être précipitée par l'acide sulfurique. Le précipité d'oxalate de chaux recueilli et chauffé fortement , a laissé o,28 grammes de chaux. .... ==== Annals of Chemistry and Physics (English) ==== Memory on the conversion of timber body rubber, sugar, and acid of a specific nature, by the sulfuric acid means; converting the same woody substance ulmine by potash By Henri Bràconnot. (Read in the Royal Society of Science Education, etc. Nancy, November 4, 1819.) The older chemists were content to repeat that the action of concentrated sulfuric acid on plant substances was limited to the charcoal. Among the moderns, Mr. Berthollet thought the hydrogen plant substance combines with the oxygen of the sulfuric acid, and that by forming water and sulfur acid, carbonaceous ingredient separates and precipitates. MM. Fourcroy and Vauquelin then sought to spread more clarity on this phenomenon (1). They admitted that it emanates sulphurous acid point and gave an ingenious theory, but that does not seem well established on rigorous evidence. By examining the remarkable changes that organic compounds undergo the action of sulfuric acid, I was led to much different results from those obtained by these illustrious chemists, and I am convinced that the main facts that I present help to throw much light on several phenomena of vegetation, and may find useful applications to the arts. <i>The action of sulfuric acid on the charm sawdust.</i> 20 grams of dried well boutique sawdust is drenched with cold sulfuric acid of commerce (I); by stirring the mixture with a glass tube; it is strongly heated, and, according to Mr. Berthollet theory, sulfurous acid gas was evolved with impetuosity; sawdust turned black and seemed to coal state; but she had that appearance. I poured over all a certain amount of water; I have separate black powder, which, dried and then thrown into the fire, burned with flame. 20 grams of dried well boutique sawdust is drenched with cold sulfuric acid of commerce (I); by stirring the mixture with a glass tube; it is strongly heated, and, according to Mr. Berthollet theory, sulfurous acid gas was evolved with impetuosity; sawdust turned black and seemed to coal state; but she had that appearance. I poured over all a certain amount of water; I have separate black powder, which, dried and then thrown into the fire, burned with flame. It did not stain substantially cold water; but she communicated with boiling water and alkaline solutions dark brown. She was nearly in the same state that was sawdust exposed for several years to air and moisture. The acidic liquor, which was almost colorless like water after being saturated with calcium carbonate, provided by evaporation a yellowish gummy material in the solution from which lead acetate formed under a white magma very abundant. This gummy material, treated with sulfuric acid weakened, provided of acetic acid, and a precipitate of calcium sulphate. I repeated the experiment with 16 grams of sawdust; but, instead of pouring sulfuric acid on the whole amount, I crushed in small portions, adding gradually Acid: despite these precautions, he again; Cloudy sulfurous acid; but I got a very thick mucilage, tenacious, I stirred into a certain amount of water, and I filtered through a cloth; he remained a black insoluble material, the weight of 5 grams, with nearly similar to that of previous experience; liquor acid, saturated with chalk, and then evaporated, have provided nearly 10 grams of a reddish brown gum. As MM. Fourcroy and Vauquelin say, in their memory, that plant substances do not break in cold sulfuric acid, I thought that this disengagement of sulphurous acid should at least be very rare; accordingly I left immediately the charm of sawdust. To better appreciate the results, I was preparing to prepare timber; but finding it difficult to bring it to a state of perfect purity, I found more comfortable to make use of hemp cloth rags found every where-and that can be considered as a matter pure wood: besides, any other kind of timber body could have similar results. <i>Section on sulphuric acid on worn hemp cloth.</i> 25 grams of hemp cloth, cut into small pieces, lost, heat, a humidity gram water. I put this picture in a glass mortar, and have watered several times with 34 grams of sulfuric acid, being careful to continuously stir the mixture with a strong glass rod, so that the acid penetrates as evenly as possible all parts of the canvas, and set a long interval between each addition of acid to the heat that develops either entirely dissipated: it is is not clear any hint of sulfurous acid. Fifteen minutes after the mixture has been done, I crushed with a glass pestle; any tissue machine is gone, and this resulted in a mucilaginous mass extremely tenacious, tackifying, between homogeneous and slightly colored, which I abandoned for twenty-four o'clock in. I point these precautions for more beautiful products; because in some way it qu'orj take it emerges sulfurous acid point and it settles any evidence relating to anthrax appearance. This mucilaginous mass is fully dissolved in water, with the exception of a amiliforme material, weight 2.5 grams after drying, and which was only a portion of the cloth that had not experienced a profound alteration of the part of the sulfuric acid. This mucilaginous mass and body of water was saturated with chalk; filtered through a machine, it was clear and had only trèslégère amber: having taken care to wash the filter and strongly express the sulphate of lime, I met liqueurs and did evaporate in a syrup which was less colored than that of capillary: it is still separated a small amount of calcium sulphate I by cooling. I continued evaporate gently to dryness, and I got a clear gum, colorful little: she weighed 26.2 grams, which were provided by 21, 5 grams of fabric, less than one gram humidity, plus 2.5 grams of amiliforme timber. I must not omit that the calcium sulphate resulting from saturation, although well washed, still holding the plant material; because, exposed to fire, he took a brownish color and spread a sulfurous acid smell as it was presumed that this remarkable weight increase could be due to a setting of the water or the elements sulfuric acid, to try to verify this suspicion was based, I dissolve in water 5 grams of the artificial gum; I added oxalic acid to precipitate the lime she was holding in combination, and can also be precipitated by sulfuric acid. The lime oxalate precipitate collected and heated strongly, left 0.28 grams of lime. .... === 1903 === ==== THE IRON AGE. September 17, 1903 ==== From THE IRON AGE. This is a bound book containing a collection of articles. This may be a collection of magazine articles. The page is labeled 12, but starts on PDF page 797. There is no author attributed. The book if from the University of Michigan and was scanned by Google. The Manufacture of Ethyl Alcohol from Wood. The manufacture of ethyl alcohol from wood is one of the latest achievements of science. To realize the significance of this announcement, from a chemical standpoint, and to appreciate the importance of the discovery to the alcohol and lumber manufacturing[sic] industries, it is only necessary to keep clearly in mind the distinction between ethyl or grain alcohol —as it is known in commerce— and methyl alcohol, or wood spirits. Heretofore ethyl alcohol, C2H6O, has been manufactured in this country almost entirely from corn, and in European Countries, especially in Germany, from beets and potatoes. The only alcohol that heretofore has been Obtained from Wood On a commercial basis has been methyl alcohol, CH4O, as a by-product in the manufacture of charcoal by the retort process. Plants of this character have been installed at nearly all of the modernly equipped charcoal iron blast furnaces in the United [IMAGE] Fig. 1.--Rotary Digester. States, acetate of lime and tar, with methyl alcohol, being the by-products secured. Methyl alcohol, or the present wood alcohol of Commerce, is consumed principally in the arts, its physical properties rendering it unfit to be used as a basis for “blended goods,” which are consumed as beverages. The muddy color, offensive odor and virulent toxic properties of methyl alcohol preclude it, even when rectified, from entering the wide commercial field open to ethyl alcohol. From the theoretical standpoint, of course, it is and has been possible to make ethyl alcohol from wood, and it has been produced in the laboratory by a number of eminent chemists. But up to within the past year no method had been devised for the manufacture of ethyl alcohol from wood on a commercial basis, all laboratory processes being too expensive. It has been the conviction of chemists, however, that eventually the secret would be found. Heretofore chemists who have worked along this line have used sulphuric acid to convert the cellulose in wood into sugar, but to neutralize the effects of, or to recover, the acid from the sugar solution has not been possible economically. In order to overcome this difficulty Alexand Classen of Aachen, Germany, conceived the idea of using sulphurous instead of sulphuric acid—sulphurous acid being a gas at ordinary temperature and presSure, and therefore more amenable to treatment. The result, it seems, has been the development of the Classen process for the Successful manufacture, on an economical Commercial basis, of ethyl alcohol from wood. Alexander Classen is an eminent chemist of Europe, professor of chemistry in the Aachen Polytechnic School, and a privy State counselor of the German Empire. Source of Raw Material Supply.<br> How to dispose of saw mill refuse has been one of the most serious problems presented to manufacturing lumbermen for many years. In some mills the sawdust, with slabs, edgings and trimmings, is used as fuel under the boilers. But even so, the largest mills find difficulty in disposing of the waste product. There is a wide variation in the amount of this refuse, but at modern mills of large capacity it is estimated to be within 12 to 15 percent. of the actual contents of the log. Some lumbermen have actually constructed plants in which to burn or otherwise dispose of the sawdust. It will be seen from this that the refuse, which may now become a source of revenue, at the present day is a cause of annoyance and expense to the saw mills, and Such is the magnitude of the mill industry that there is an abundance of material which may be utilized in the manufacture of alcohol for years and years to come. It is estimated that there are between 25,000 and 26,000 saw mills in the United States, varying in size, and each cutting from 5000 up to 600,000 feet of lumber per day, and [IMAGE] Fig. 2.--Exhaustion Battery. that the waste is, on an average, 10 to 15 per cent. It is possible, therefore, to establish plants for the manufacture of alcohol from wood at mills where a supply of from 100 to 600 tons of the raw material may be obtained per day, it being estimated that 1000 feet of waste will weigh 1 ton. There is a single mill in Mississippi which cuts 600, 000 feet per day and another 300,000 feet per day. Anther Southern company, running five to six mills, cut in the aggregate 500,000 feet daily. Yield and Cost of Manufacture.<br> From the experiments which have been made in this country, on a semicommercial[sic] Scale, it has been determined that one ton of wood of 2240 pounds will yield from 24% to 27 gallons of absolute alcohol, or 49 to 54 proof gallons, at a cost of 13 cents per absolute gallon. With the perfecting of the process, and especially with the employment of improved mechanical methods, it is confidently expected that the cost will be reduced to 7 cents per absolute gallon. The cost of manufacturing alcohol from grain is estimated to be about 20 cents per absolute gallon, based upon corn at 30 cents per bushel. At present the cost is considerably more, as the market price of corn has risen to 50 cents and over. On the average 4 3/4 proof gallons of alcohol are obtained from a bushel of corn. It has also been determined that the same quantity of alcohol is obtained from a ton of wood in this country as is obtained from a ton of potatoes in Germany, but the alcohol obtained from wood is said to be of much better quality than that derived from potatoes. The cost of potatoes in Germany is from $6.50 to $8 per ton, while the cost of sawdust in the United States is but from 25 to 50 cents per ton. Charcoal and Other By-Products.<br> One important feature in the manufacture of ethyl alcohol from wood by the Classen process is that after the cellulose has been converted into sugar and the Sugar extracted from the wood the tailings may be pressed into briquettes without a binding agent, while wood alcohol, wood tar and acetate of lime may be obtained from the wood residue in the process of making charcoal, just as though no ethyl alcohol had been manufactured. This is especially important and interesting to charcoal blast furnaces, and may be worthy of special consideration. Experiments show that about 75 per cent of the original weight of the wool may be converted into charcoal briquettes. The chemical composition of the charcoal thus produced is given by Otto Hehner, an eminent chemist of London, who has verified the figures made by Professor Classen, as follows: Carbon, 80 per cent.; hydrogen, 1.04 per cent. ; nitrogen, 0.32 per cent. ; oxygen, 8.34 [IMAGE] Fig. 3.—Acid Room and Apparatus. percent. ; sulphur, 0.01 per cent. ; moisture, 9.05 per cent. ; ash, 0.47 percent. Experimental Plant at Highland Park. Illinois.<br> The Lignum Inversion Company, who have purchased the right to manufacture ethyl alcohol in the United States under the Classen patent, have established an experimental plant at Highland Park, near Chicago, which has been in operation about eight months. This plant, of which the essential features are shown in the accompanying illustrations, is necessarily crude from a mechanical and engineering standpoint, but, even with its inefficient machinery, results have been obtained which are highly satisfactory. For three months the factory at Highland Park was placed under the direct control of Dr. John H. Long, Professor of Chemistry in the Northwestern University, Chicago, and president of the American Chemical Association. In making his report at the end of this period Professor Long states that he made the tests rigid, to be certain that the product is really as good as grain alcohol, of which he had no question. In his report Professor Long states that the process is based on simple and thoroughly rational scientific principles, and has been well worked out by Professor Classen. He considers that the value of the process depends on three factors: 1. It is extremely simple in theory and operation. 2, The raw material used is cheap and abundant, and 3, it infringes on no previous patents, since the method is quite original with Classen. All previous attempts to obtain fermentable sugar from wood have been failures in practice. The Process in Details.<br> In the process of manufacturing ethyl alcohol from wood there are four stages: 1, The conversion of the Cellulose in the wood into sugar. 2, The extraction of the Sugar from the sawdust. 3, The fermentation of the Sugar; and 4, the distillation of the alcohol. The equipment consists of the necessary tanks and other apparatus for the manufacture of the sulphurous acid gas and the generation of steam ; a tank in which the acid is under pressure; a rotary digester, in which the Sawdust is treated with the combined acid and steam; an exhaustion battery for the extraction of the Sugar from the Sawdust; tubs in which the fermentation is carried on, and last, an ordinary still. The sugar solution is passed through the exhaustion battery by means of a rotary pump. The simple machinery is driven by means of a 4% horse-power steam engine. The labor cost is light, as but two men are required throughout the entire process, one being the chemist and the other an unskilled laborer. It should be remembered, however, that the distillation process, as in all other cases where alcohol is manufactured, is necessarily under [IMAGE] Fig. 4.—Fermentation Room. government supervision, the manufacturers, of course, bearing the expense incurred through the internal revenue department. The sawdust which is to be treated is placed in a lead lined iron cylinder, Fig. 1, called the digester, capable of revolving upon its axis. The cylinder is surrounded by a steam jacket for the application of heat. The sawdust is moistened with a 3 percent solution of sulphurous acid, one-third the weight of the wood, the acid and steam being introduced through pipes conveyed from the acid room. The temperature is raised to about 145 degrees C. under a pressure of about 100 pounds to the square inch, and the digester slowly revolved. As the temperature is raised the gas is liberated from the steam and penetrates the wood, converting the cellulose into sugar. At the expiration of about 90 minutes the process is complete, when fully 85 percent of the sulphurous acid is recovered with the exhaust steam. By this treatment the sawdust shrinks to about two-thirds of its original bulk and presents a nearly dry mass, having the appearance of coarse ground roasted coffee. The contents of the digester are discharged into a receptacle beneath the cylinder, and subsequently conveyed to the exhaustion battery, Fig. 2, in which the sugar is washed from the Sawdust. The exhaustion battery consists of a series of tubs or Vats, each vat at the experimental plant having a capacity of 36 gallons. Of course these batteries are capable of indefinite extension, and in the commercial plant, which will soon be erected, capacity will be provided to treat all the sawdust which comes from the digester, the capacity of the batteries to be proportioned to the contents of the disgester. The vats are connected by pipes, which are controlled by valves, and the contents are pumped from one vat to another as the process proceeds, care being taken to bring the sawdust richest in sugar in contact with the strongest solution, whereas the sawdust which is nearly exhausted of its sugar is treated with pure water. When the vats have been treated with ten washings they are emptied, refilled and the process repeated. From 450 to 500 pounds of sugar are thus obtained from a ton of sawdust, and from 70 to 80 percent of this sugar is capable of alcoholic fermentation, the remainder being pentose, which is nonfermentable. The sugar solution is pumped from the exhaustion battery into a receiving tank, Fig. 3, where the acid that remains is neutralized with carbonate of lime, this neutralization being necessary to facilitate the action of the yeast in promoting fermentation. From the neutralizing tank the solution is pumped into fermenting Vats, Fig. 4, the liquid at this stage being similar to the “mash” obtained in the process of making alcohol from grain. When the solution or “mash” has reached a temperature of about 130 degrees C. yeast is added, and in an incredibly short time—about half an hour—a brisk evolution of carbonic acid gas takes place. Fermentation proceeds with much rapidity, and after eight to ten hours the process is complete. It is interesting to note here that fermentation of grain “mash” requires 72 hours. Upon the completion of the fermentation process the liquid is passed into the distillery, which is equipped with an ordinary still and condenser. Careful tests have been made with white pine of the North, white and red cedar from the Pacific Coast, and yellow pine from the South. The first experiments were made with white pine, but all of these woods it has been found, can be treated advantageously for the production of ethyl alcohol. It was with some misgiving that yellow pine was used, as this wood is rich in turpentine, and fears were entertained even by Professor Classen himself that this fact would result injuriously. Much to the surprise of the chemists, however, it was not only found possible to produce alcohol in an equal amount as from other woods, but turpentine was recovered to a large extent, without in any away interfering with the production of alcohol, the turpentine being recovered at the same time as was the sulphurous acid. As has been previously stated, the Highland Park plant was for three months under the supervision of Professor John H. Long. Upon his retirement the management passed into the hands of Otto Sjostrom, a German chemist and assistant to Professor Classen, under whose direction much of the work at the original plant erected at Aix-la-Chapelle was carried on. Charcoal and Other By-Products.<br> The report of Oscar Daube, general manager of the American Chemical & Carbon Company of New York City, upon the utilization of the sawdust residue is of special interest to owners and operators of charcoal blast furnaces, especially those who have already installed wood alcohol plants. The report is as follows: Some time ago I visited your works at Highland Park and examined with great care and interest the Classen process for producing ethyl alcohol from sawdust, and consider the same practical and of great importance. Following your suggestions that I examine the tailings left after the fermentable sugar is extracted from the sawdust and report on the practical use to which these can be put. I had some of the tailings sent to my laboratory in New York, where I have made exhaustive tests during the last two months. I have not the slightest doubt in advising you that the tailings may be briqueted, and from these briquettes charcoal of the highest grade suitable for all blast furnaces or other purposes requiring a first-class charcoal free from impurities may be obtained. The briquettes are made by pressure only, without the use of any binder. The charcoal is made from the briquettes in exactly the same way that charcoal is produced from wood and the usual by-products, such as wood alcohol, acetate of lime, wood tar, &e, are obtained. I have made a very careful analysis of the charcoal to determine the percentage of carbon in it, and this analysis has been verified by the Metallurgical and Analytical Laboratory at 52 Beaver street. New York. I obtained with 850 degrees F. 87 1/2 percent of carbon, which carbon is equal to that obtained by any other process. Ordinary charcoal is made from wood of different shapes and sizes, but as your briquettes are of uniform size the charcoal obtained therefrom would be more uniform in quality and more easily charred. I also make the statement that so far as ash, sulphur and other impurities are concerned, there will be no more of these than in the present method of making carbon from wood. If it is found advisable after your large plant is established, it is equally possible to make charcoal from the tailings without briqueting the tailings. The granular charcoal thus made may be formed into bricks afterward. The amount of charcoal obtained from the briquettes is from 40 to 42 per cent. I consider one of the great advantages of your process is that you make charcoal from green waste sawdust after you have extracted your ethyl alcohol, while an ordinary charcoal plant requires that the wood be seasoned for at least 18 months. You thereby save capital required to purchase and carry the wood and eliminate risk from danger of fire. The figures I give you are from soft wood sawdust (long ton). The figures on wood alcohol and acetate of lime would be largely increased if hard 'wood sawdust were used. Hardwood sawdust is obtained in large quantities in Northern Michigan and elsewhere. A complete 25-ton daily plant to make briquettes, charcoal and by-products would not cost to exceed $25,000. The gross returns per day from such a plant would be:<br> 1,000 bushels charcoal, at 10 cents per bushel. . . . . . . . . . $100.00<br> 8 1/2 gallons wood alcohol, at 65 cents per gallon. . . . . . . . 53.62<br> 750 pounds acetate of lime, at 1 1/2 cents per pound. . . . . . 11.25<br> 125 gallons wood tar, at 5 cents per gallon. . . . . . . . . . . . 6.25<br> Classen Lignum Company.<br> The Lignum Inversion Company of Chicago, with a capital stock of $110,000, is the organization which has secured the Classen patents in the United States, and under whose direction all work in this country thus far has been accomplished. J. M. Ewen of Chicago is president, and J. K. George of London managing director. A number of wealthy and influential business men of Chicago, Pittsburgh and New York have become interested in the company, as well as large saw mill interests in Mississippi. It is understood that the Lignum Inversion Company is soon to be converted into the Classen Lignum Company, with a capital stock of $2,500,000, and arrangements will be shortly completed for the erection of a plant for the manufacture of alcohol by the Classen process, with a capacity of 100 tons per day, at a point in the South, and a contract has been signed for the erection of another plant of equal capacity in Northern Michigan. === 1908 === From Zeitschrift für angewandte Chemie (Journal of Applied Chemistry) in 13. November 1908. This is a German chemistry journal. This starts on page 2353 of the journal (PDF page 923). The book is from the Indiana University Library and scanned by Google. This is taken directly from the PDF. There are many OCR errors with this section. Help is needed in cleaning up both the German version and the English translation. This article was condensed and printed in English as "PRODUCTION OF ALCOHOL FROM CELLULOSE." in the April 10, 1909 edition of SCIENTIFIC AMERICAN SUPPLEMENT No. 1736. On the question of the formation of alcohol from cellulosic materials. By Dr.-Ing. Theo Koerner. ==== Zeitschrift für angewandte Chemie (German) November 13, 1908 ==== Zur Frage der Bildung von Alkohol aus cellulosehaltigen Stoffen. Von Dr.-Ing. Theo Koerner. ( Aus dem organisch-chemischen Laboratorium der technischen Hochschule zu Dresden. Mitgeteilt von E. v. Meyer.) (Eingeg. d. 12./10. 1908.) Der Gedanke und das Bestreben, aus Holz Alkohol zu gewinnen durch Hydrolyse, das heißt Umwandlung in Traubenzucker und nachherige Vergärung, ist älter, als man annehmen sollte. Bereits im Jahre 1819 findet sich in Gilberts Annalen der Physik (63, 348) und Ann. Chim. (18, 172) eine Abhandlung : „Über die Verwandlung des Holzstoffes mittels Schwefelsäure in Gummi, Zucker, und eine eigentümliche Säure, und mittels Kali in Ulmine", entdeckt von H. Braconnot. Diese Arbeit wurde vom Verf., der Professor in Nancy war, am 4. November 1819 der französischen Akademie der Wissenschaften vorgelegt. Ein Jahr später wurde sie im Dingl. Journ. (I, 312) abgedruckt. Braconnot führt aus, daß sich die alten Chemiker mit der Ansicht begnügt hätten, Schwefelsäure wirke verkohlend auf Pflanzensäuren ein. Unter den neueren Chemikern habe Berthollet, später Fourcroy und Vauquelin sich bemüht, diese Erscheinungen weiter aufzuklären. Er sei nun zu anderen Resultaten gelangt, und zwar habe er beim Behandeln mit kalter Schwefelsäure vom spez. Gew. 1,827 (91,5%) eine starke Erhitzung unter Entweichen von schwefliger Säure beobachtet. Beim Verdünnen, Abfiltrieren und Neutralisieren mit Kalkcarbonat habe sich eine gummiartige Masse ausgeschieden. Erhitze man nun diese gummiartige Substanz mit verdünnter Schwefelsäure, so entstehe Zucker. Dieser sei auskristallisierbar und vergärbar gewesen. Die Entdeckung erregte Aufsehen, und es wurden große Hoffnungen an ihre technische Ausführung geknüpft. Schon 1820 findet sich eine weitere Abhandlung über diesen Gegenstand von Vogel, der ähnliches wie Braconnot fand und seine Versuche auf Papier, Baumwolle, Stroh, Kork und alte Manuskripte ausdehnte. 1854 lenkt Arnould wieder das allgemeine Interesse auf das Verfahren durch eine Abhandlung im Dingl. Journ. (134, 219). Er hofft durch die Einführung der Alkoholgewinnung aus Holz einen großen Teil des Getreides wieder seiner ursprünglichen Verwertung zuzuführen. Nach seinen Angaben hat er 80—90% von bestimmten Hölzern in lösliche Produkte verwandeln können durch Anwenden von 110 Teilen konzentrierter Schwefelsäure auf 100 Teile Holz. Melsens schreibt 1855 in „Genie industriel" über das Vermindern der Konzentration der angewendeten Schwefelsäure auf 3—5% und wendet das Verfahren hauptsächlich auf Fabrikationsrückstände an. Er ist der erste, der im Autoklaven arbeitete und Temperaturen bis zu 180° anwendete. Auf eine Anregung des polytechnischen Vereins zu München beschäftigte sich 1855 Pettenkofer mit diesem Thema und veröffentlichte seine Resultate im Bayr. Kunst- und Gewerbeblatt 1855 (S. 136). Er führte dort vergleichende Rechnungen zwischen Brennereiverfahren und Holzhydrolyse aus, die zum Nachteile der letzteren ausfielen. Tribouillet versuchte schon 1854, die konzentrierte Schwefelsäure der verzuckerten Holzlösung anderweitig auszunutzen, indem er die Aufschlüsse zur Zersetzung der Kalkseifen der Stearinkerzen fabrikation verwendete. 1855 wurde unter der Leitung des Chemikers Pelouze in Paris eine Fabrik zur Bereitung von Weingeist aus Holzfaser gegründet. Sie scheint aber nicht lange existiert zu haben; denn nur noch einmal (1859) finden wir einen Hinweis durch eine von Pelouze veröffentlichte Abhandlung (Dingl. Journ. 150, 394), die nichts wesentlich Neues bringt. Außer dieser Fabrik sollte nach Varrentrapp (Dingl. Journ. 181, 233) noch eine fabrik mäßige Ausübung der Weingeistbereitung aus Holz in Genf versucht werden, die neben Papierstoff aus den inkrustierenden Substanzen „große Mengen" Alkohol zu gewinnen gedachte. 1867 erschienen Versuche von l'aycn über die Cellulosc. Sie gehen auch von der Papierstoffdarstellung aus, indem aus den ligninhaltigen Ablaugen als Nebenprodukt Alkohol erhalten werden soll. Dr. J. MattheuB will aus Torf vergärbare Dextrose gewinnen. Am 2./ 12. 1894 patentierte man (D. R. P. 92079) in Deutschland dem Chemiker Simons en aus Christiania ein Verfahren zur schnellen Verzuckerung cellulosehaltiger Materialien mit Hilfe von 0,4—0,8%igen Säuren bei 7 Atm. Druck und darüber. Der Prozeß soll in 10—30 Minuten beendet sein. Simonsen gewann aus 1 kg Holz 60 g Alkohol, also eine gegenüber früheren Angaben rocht bescheidene Ausbeute. Im Frühjahr 1898 wurde eine längere Arbeit des eben erwähnten Erfinders in Deutschland bekannt. Sie wurde von dem polytechnischen Vereine zu Christiania mit der goldenen Medaille belohnt und durch diese Zeitschrift (II, 195 [1898]) verbreitet, Si monsen stellte Versuche über den Einfluß des I >ruckcs, der Wassermengen, der Inversionszeit und der Säuremengen bei der Inversion cellulosehaltiger Materialien an. Er gelangte bei Anwendung von Sulfitcellulose zu Zuckerausbeuten von 45%, er hält aber höhere Ausbeuten für ausgeschlossen, da die hohe Temperatur bei der Inversion der Cellulose eine teilweise Zersetzung des gebildeten Zuckers bewirke. Leider bestimmte er die Zuckermengen mit Fehling scher Lösung und versuchte nnr an einem Beispiel den Nachweis zu führen, daß aller durch Fehling sehe Lösung bestimmte Zucker vergärbar sei. Bei den Versuchen mit Sägespänen findet er die vorteilhafteste Ausbeute bei 1/4 ständigem Erhitzen von 100 g Sägespänen mit 500 cem 0,5%iger Schwefelsäure unter 9 Atm. Druck. Die Vergärungsversuche des erhaltenen Zuckers führten nur bei wenigen Versuchen zu positiven Resultaten. Hier wurde als Höchstausbeute aus 100 g Sägespänen 6,5 cem (d. s. 5,1 g) absoluter Alkohol erhalten. Er kommt zu dem Schluß, daß Holz sich wider Erwarten leichter als Cellulose invertieren lasse; und die Versuche scheinen die Annahme zu bestätigen, daß der entstandene Zucker der Cellulose des Holzos entstamme, da bei Sägespänen die Zuckerausbeute der aus Cellulose des Holzes zu erhaltenden entspricht. Am 15. Februar 1899 wurde dem Dr. Alexander Classen aus Aachen das erste Patent auf ein Holzverzuckerungsverfahren erteilt (D. R. P. 118 868). Es besteht in starkem Pressen eines Gemisches von Sägespänen und Schwefelsäure von 57° Be. Die Masse erhitzt sich von selbst, wird dann zerkleinert und mit Wasser gekocht. Ein Verfahren (D. R. P. 118 540), die Ausbeute bei der Holzinversion durch Kochen mit schwefliger Säure und Schwefelsäure oder nur schwefliger Säure, und durch nachherige Oxydation derselben zu Schwefelsäure, zu erhöhen, wurde ihm am 24./9. 1899 geschützt. Hieran schließen sich drei Patente vom 12./5. 1900 (D. R. P. 118 542, 118 543, 118 544). Das erste besagt, daß man die Holzsubstanzen mit Chlorwasser im Autoklaven erhitze und dann schweflige Säure zur Bildung von Schwefelsäure einführe. Das zweite Patent will die Ausbeute an Zucker dadurch erhöhen, daß man das Rohmaterial mit schwefliger Säure erhitzt und dann zur Bildung von Schwefelsäure Chlor einleitet. Das dritte Patent besteht darin, daß man erst die Sägespäne mit schwefliger Säure erhitzt und zu deren Umwandlung in Schwefelsäure Luft oder Sauerstoff einführt. Die Einführung der schwefligen Säure, der Chlors und der Luft oder des Sauerstoffs soll nach allen drei Patenten bei 120—125° erfolgen. — In einem Patent vom 17./10. 1900 (D. R. P. 121 869) wird C 1 a s s e n die Behand lung des Holzes mit Sehwefelsäureanhydriddämpfen patentiert. Zu diesem wird im Zusatzpatent 123 911 vom 17./10. 1900 auch auf das nachherige Erhitzen auf 125—135° Anspruch erhoben. Während Classen durch Zusatz von schwefliger Säure eine Erhöhung der Ausbeute erzielen will, suchen G e n t z e n und Dr. Roth (D. R. P. 147 844a vom 26./S. 1901) im Ozon das die Ausbeute erhöhende Agens. Der Zusatz von Ozon soll einer seits die Ligninsubstanzen zu vergärbaren Pro dukten oxydieren, andererseits die die Gärung hin dernden Stoffe durch Oxydation ausscheiden. Nach den Angaben der Patentschrift erhält man bei Anwendung von Ozon aus 100 kg Kiefernholz 34 kg vergärbare Dextrose und aus 100 kg Fichtenholz sogar 40 kg. Man arbeitet mit 3—4%iger Schwefeloder Salzsäure und bei einem Drucke bis zu 20 Atm. Die Dauer des Prozesses liegt zwischen 10 bis 30 Minuten. Am 4./9. 1904 sprach der Dipl.-Ing. Reiferscheidt in einer Versammlung des Bezirkvereins Saclisen- Anhalt über die Gewinnung von Alkohol aus Holzabfällen. Er hat durch Versuche die Simonsen sehen Zahlen und einzelne andere Arbeiten, z. B. das Patent von C 1 a s s e n nachgeprüft. Er kommt im Gegensatz zu P a y e n und übereinstimmend mit Siracnsen zu der Überzeugung, daß der Alkohol nur aus Cellulose stamme, und das Lignin bei der Holzverzuckerung eher störend als fördernd wirke. Er findet dann, daß bei den C 1 a s s e n sehen Patenten am besten 8,5—9,5%ige schweflige Säure angewendet wird und die günstigste Versuchsdauer 1 Stunde sei; die günstigste Temperatur liege zwischen 140—150° bei 4—5 Atm. Im Jahre 1905 (8./G.) wurde dem Kaufmann Arno Bornen aus Wien in England ein Patent für die Darstellung von Zucker aus cellulosehaltigen Materialien erteilt. Es behandelte die Rohmaterialien mit 5%igen Lösungen von Ätzalkalien bei 30—40°, wobei ein Teil der Bestandteile, die er „amyloidartig" nennt, in T.iösung geht. Durch Kochen der abfiltrierten Laugen sollen die „amyloidartigen Bestandteile in Zucker übergehen. Werfen wir noch einen Rückblick auf das Gesagte, so finden wir, daß die Angaben über die Ausbeute an Zucker und Alkohol sehr auseinandergehen. Die höchsten Angaben sind in der ältesten Literatur verzeichnet; so will Braconnot 1817 aus 20,4 g Leinwand 23,3 g Zucker gewonnen haben. Oft beschränkte man sich bei den Ausbeuteangaben auf den Ausdruck „große Mengen" Zucker. Arnould fand 1854 noch aus 100 g Holz 110 g Zucker. Später treten auch Angaben über die Alkoholausbeute auf, doch sind diese schon bedeutend kleiner; so fand B a s s e t aus 100 g Holz 32 cem Alkohol, Ludwig 36,6 g (ca. 41 cem) Alkohol. 1867 stellte Payon aus 100 g Holz 21,3 g Zucker dar und Ende 1898 Simonsen60g Alkohol aus 1 kg Holz. Aus dem Vorstehenden ist ersichtlich, wie oft man sich schon mit der Verzuckerung der Cellulose beschäftigt hat, und die großen- Unterschiede, die in den Ausbeuten enthalten wurden, zeugen von der Unkenntnis der wichtigsten Einflüsse. Die einzige Übereinstimmung wurde wohl von Simonsen und von Reiferscheidt erzielt, die beide aus 100 g Holz ca. 6 g Alkohol erhielten, eine Ausbeute, die auch durch die vorliegende Arbeit bestätigt wird. Die Verschiedenheit und wohl besonders die UnVollständigkeit der Abhandlungen erschweren natürlich die Ausführung solcher Versuche und die Nachprüfung der Angaben bedeutend. Die Anordnung meiner Versuche war im allgemeinen folgende. Das Rohmaterial (Holzsägespäne, Sulfitcellulose von H ö s c h in Heidenau und Stroh stoff von Dietrich in Weißenfels) wurde, je und je den Versuchen entsprechend, kürzere oder längere Zeit mit verdünnter oder konzentrierterer Schwefelsäure, teils mit, teils ohne Zusatz in einem ca. 2 1 fassenden Autoklaven erhitzt. Der Autoklav war aus Kupfer mit Blei ausgefüttert und von der ihn erhitzenden Glasflamme durch eine Luftschicht geschützt, so daß die Bunsenflamme keine direkte Zerstörung der eingeschlossenen Substanzen bewirken konnte. Oft wurde auch im Wasserbade gearbeitet. Nach Beendigung der Kochung wurde die saure Flüssigkeit vom festen Rückstand abfiltriert und die ersten 500 cem zur weiteren Verarbeitung verwendet. Das Filtrat war nach der Art der Ausgangsmaterialien verschieden gefärbt, vom dunklen Rotbraun bis zum hellen Orange. So sahen Filtrate von Holzeinschlüssen rotbraun aus, diejenigen von Sulfitcellulose rot und Ansätze mit Strohstoff sohön rotgelb. In saurer Lösung stehen gelassen, schieden sich nach einiger Zeit noch den Rückständen ähnliche Massen aus. Durch Alkalien wurden die Lösungen dunkel gefärbt, die von Sägespäne herrührenden dunkler als die aus Sulfitcellulose stammenden und diese wieder dunkler als diejenigen aus Strohstoff. Bei den ersten Versuchen wurde der Zuckergehalt mit Fehling scher Lösung durch Wägung des zu Kupferoxyd oxydierten Kupferoxyduls bestimmt. Es stellte sich aber bald heraus, daß der aus dieser Zuckermenge berechnete Alkohol nicht in allen Fällen dem durch Gärung gewonnen gleich kam, wie dies Simonsen (diese Z. 11, 225 [1898]) annimmt, da sich zwei hierüber angestellte Versuche wie 21,6 : 20,0 verhielten, also nur 8% Unterschied ergaben und man beim Brennereiverfahren mit 10—20% Verlust rechnen muß. So fand ich z. B. ziemlich übereinstimmende Werte (jedenfalls innerhalb der Verlustgrenzen der Brennerei) bei folgenden Vorsuchen : Sägespäne mit 0,5%iger Schwefelsäure invertiert (Nr. 1) : Alkohol aus Zuckerreduktion berechnet . 5,21 g durch direkte Gärung erhalten 5,21 g Sägespäne mit 0,5%iger Schwefelsäure invertiert nach vorherigem Behandeln mit Wasserdämpfen (Nr. 3) : aus der Zuckerreduktion berechnet . . . 7,39 g direkt durch Gärung erhalten 6,83 g Sulfitcellulose mit 0,5%iger Schwefelsäure unter Zusatz von 2% Wasserstoffsuperoxyd (Nr. 14) invertiert : aus der Reduktionszahl berechnet .... 16,08 g direkt durch Gärung 14,64 g Strohstoff mit 0,5%iger/ Schwefelsäure unter Zusatz von 2% ^Wasserstoffsuperoxyd invertiert (Nr. 15) : aus der durch Reduktion bestimmten Zuckermenge berechnet 8,51 g direkt durch Vergärung 8,36 g Im Gegensatz zu diesen stehen Bestimmungen, wo die Differenzen zum Teil sehr bedeutende sind : (Nr. 2.) Beim Zusatz von S02 zum Einschluß des Versuches Nr. 1 ergab die aus dem Zuckerwert berechnete Alkoholmenge 2,43 g statt 1,74 g (Nr. 2), durch Vergärung erhalten, und Alkoholmenge 9,56 g statt 5,52 g (Nr. 6), durch Vergärung erhalten. Der Versuch' 8, in dem Sulfitcellulose einfach mit 0,5%iger Schwefelsäure bei 8 Atm. gekocht wurde, lieferte eine Flüssigkeit, deren Alkoholausbeute nach der Methode mit Fehlingscher Lösung 10,94 sein sollte, und die bei der Vergärung nur 8,43 ergab. Ebenso erhielt ich beim Invertieren von Strohstoff mit 0,5%iger Schwefelsäure 8,52 g aus dem Zuckergehalt statt 5,4 g bei direkter Vergärung. Diese Fehler rühren von anderen reduzierenden Substanzen her, die nicht vergärbarer Zucker sind; so konnten im Versuche Nr. 11 einmal größere Mengen eines Aldehyds mit schwefligsaurer Fuchsin lösung nachgewiesen werden, die sieh durch Rotfärbung von Scsamöl als Furfurol erwiesen. In diesem Versuche betrug die Alkoholmenge, aus dem durch Fehling sehe Lösung bestimmten Zuckergehalte berechnet, 7,66 g. während durch Gärung nur 2,12 g Alkohol erhalten wurden. Auch Simonsen will (diese Z. 8. 196 [1895]) Geruch von Furfurol beobachtet haben. Aus diesen Gründen wurde in allen Versuchen der Alkohol durch Vergärung direkt bestimmt, und zwar auf folgende Weise : Ein Teil des auf ein bestimmtes Volumen aufgefüllten Filtrats wurde mit kohlensaurem Kalke neutralisiert, vom Rückständeabfiltriert, mit wenigen Tropfen Phosphorsäure versetzt und mit Hefe bei 25—30" während zwei bis drei Tagen vergoren. Die vergorene Flüssigkeit wTirde von der Hefe getrennt und nach Zusatz von wenig Tannin abdestilliert. Nachdem ungefähr ein Drittel übergegangen war, wurde die Destillation eingestellt, das Destillat zur Abstumpfung etwa gebildeter Essigsäure mit wenig kohlensaurem Kalke versetzt und noch ein bis mehrere Male (nach Bedarf) destilliert. Das spezif. Gewicht der erhaltenen, Alkohol enthaltenden Flüssigkeit wurde stets bei gleicher Temperatur mit dem Pyknometer bestimmt. 1. Vergleichende Versuche über die Verzuckerung von Sägespänen, Strohstoff und Sulfitcellulose mit verdünnter Schwefelsäure. Die Frage, ob der durch Hydrolyse aus Holz entstandene Zucker der Cellulose allein entstamme, oder ob auch die Ligninsirbstanzen daran Anteil haben, ist vielfach erörtert worden. So nahm z. B. 1867 P a y c n an. daß der Zucker aus dem Lignin entstehe, und die Cellulose nicht angegriffen werde, da er im Großen aus Holz mit Salzsäure reine Cellulose für die Papierfabrikation erhalten wollte, und die inkrustierenden Substanzen dabei in Zucker überzuführen gedachte. Daß reine Cellulose mit Schwefelsäure hydrolysierbar ist, stehtheute fest, und nur die Frage, ob auch Lignin in Zucker überführbar sei, ist nocli zu beantworten. So scheint das Lignin nach den Versuchen von Lindsey keine Beziehungen zu Hexose zu haben, da es nicht gelang, aus der Holzflüssigkeit (Sulfitlauge) Lävulinsäure zu erhalten, die sehr leicht aus den Kohlehydraten entsteht. Würde man Lignin bestimmt als kein Kohlehydrat erkennen, so würde auch seine Inversion so gut wie ausgeschlossen sein. — Aus Simonsens Versuchen kommt man zu der Uberzeugung, daß der bei der Inversion entstandene Zucker allein der Cellulose entstammt, da aus Holz 20% Zucker, aus Cellulose 45% Zucker erhalten wurden, und bei Annahme, daß Holz 50% Cellulose enthält, der aus dem Holze gewonnene Zucker ungefähr dem aus der Cellulose des Holzes allein zu erhaltenden entspräche. Da die Simonsen sehen Bestimmungen mit Fehling scher Lösung, ausgeführt wurden, und diese Methode, wie bereits gezeigt, nicht einwandfrei ist, so wurden mehrere Versuche mit Holzsägespänen, Sulfitcellulose und Strohstoff unter den gleichen Bedingungen ausgeführt, indem je 40 g in 500 cem 1/2%iger Schwefelsäure ' während zwei Stunden 6—8 Atm. erhitzt und dann, wie bereits oben erwähnt, weiter verarbeitet wurden. Die Ausbeuten an Alkohol waren folgende : Holzsage- Sulfit- Strohspäne cellulose stoff 5.21% 13,69% 9.56% 6,83% 11,97% Mittel 6,02% 12,83% 9,56% Die höchste Ausbeute lieferte die Sulfitcellulose mit 12,83 g Alkohol im Durchschnitt auf 100 g trockenes Ausgangsmaterial. Es ist das ungefähr das Doppelte des Ausbeutewertes für Sägespäne. Nimmt man die Sägespäne mit 50% Cellulose an. so würde der aus den Sägespänen erhaltene Alkohol dem aus der Cellulose des Holzes allein zu erhaltenden entsprechen. Die Versuche bestätigten die Simonsen sehen Angaben und befestigten die Ansicht, daß der Zucker allein der Cellulose entstamme und das Lignin nicht in Zucker überführbar ist. Um auf diesen Punkt genauer eingehen zu können, wurden Bestimmungen des Cellulosegehaltesausgeführt, und zwar für Holz und Sulfitcellulose nach der Methode von Fremyund Terreil (Z. anal. Chem. 1, 282). Das' Aufschließen geschieht hier durch 36stündiges Stehenlassen in Chlorwasser. Darauf wird der Küekstand mit Pottasche ausgekocht, die nun die Nichtcellulosesubstanzen leicht lösen soll. Zum Schluß wäscht man noch mit verdünnter Säure aus und trocknet bei 136°; durch Wägen in einer Platinschale, Glühen und Zurückwägen wird die Cellulose bestimmt. Es wurden nach dieser Methode aus 0,8804 g trockenem Holze 0,4387 g Cellulose erhalten, und aus 0,8749 g 0,4224 g, was 49,83 und 48,28% entsprechen würde. Noch weniger gut stimmen die Werte für Sulfitcellulose unter sich überein. Aus 0,9386 g und 0,9617 g Sulfitcellulose wurden 0,7845 g Cellulose erhalten, d. s. 83,598 und 79,693%. Der Gehalt des Strohstoffs an Cellulose wurde nach dem Verfahren von Henneberg und Wender (Eisner, Praxis des Chemikers bei der Untersuchung von Nahrungsmitteln, S. 44) bestimmt. Die Methode wird vielfach in der Nahrungsmittelchemie zur Bestimmung der „Rohfaser" angewendet, eignet sich aber nicht für Holz, da das Holz scheinbar nicht fein genug verteilt war. Der Strohstoff wurde, beim Kochen zu einer feinen schleimigen Masse, und die Resultate waren folgende : Angewandte Substanz .... 2,6396 g 3,3728 g Differenz der bei 105° gewogenen Cellulose und ihrem Glührückstand 1,8241 g 2,3167 g in % also 69,18 und 68,69 Stellt man die Cellulosezahlen den Ausbeuten gegenüber, so findet man folgendes : % Alkoholan Cellulose ausbeute Holz 49,05 6,02 ( 6,02) Sulfitcellulose 81,64 12,83 (10,02) Strohstoff 68,90 9,56 ( 8,46) Die Zahlen verhalten sich oberflächlich proportional. Für Sulfitcellulose und Strohstoff kann man die zu erwartenden Zahlen der Ausbeuten aus den Cellulosegehalten und den Alkoholausbeuten des Holzes berechnen. Die Zahlen sind in Klammern beigefügt. Die Übereinstimmung ist eine sehr schlechte. Der Grund, daß die Ausbeuten in Wirklichkeit größer sind, dürfte auf die schlechte Methode der Cellulosebestimmung zurückzuführen sein, die zu niedrige Werte liefert. II. Versuche über die Wirkung der schwefligen Säure bei der Verzuckerung des Holzes. Es wird vielfach angenommen, daß die schweflige Säure einen günstigen Einfluß auf die Ausbeute an Zucker bei der Holzverzuckerung ausübt. Die älteste Notiz in dieser Hinsicht ist wohl das amerikanische Patent 654 518 (Chem.-Ztg. 24, 693 [1900]). Über die Wirksamkeit der schwefligen Säure findet man in der Literatur zweierlei Auffassungen : 1. Man will die schweflige Säure als die bei der Inversion nötige Säure verwenden (Allgem. Chemikerzeitung 5, 646 nnd C 1 a s s e n , D. R. P. 130 980). 2. Man will durch eine Vorbehandlung mit schwefliger Säure eine leichtere Angreifbarkeit des Materials erzielen und durch Oxydation zu Schwefesäure mittels Luft, Sauerstoff oder Chlor die für die Inversion nötige Säure schaffen. In dieser Richtung bewegen sich die Patente von C 1 a s s e n : D. R. P. 118 540, 118 543, 118 544. Zuerst wurden darum zweimal je 40 g Sägespäne einer Vorbehandlung mit 2%igem Süß wasser während zwei Stunden bei 6—7 Atm. unterworfen und darauf mit 0,5% Schwefelsäure bei demselben Drucke gekocht. Die weitere Verarbeitung geschah, wie oben erwähnt, und ergab auf 100 g trockne Sägespäne 4,16 g und 5.52 g Alkohol. Hieraus geht hervor, daß eine Vorbehandlung mit S02 die Ausbeute an Alkohol nicht vermehrt, eher vermindert, da ohne S02 -Zusatz 6,02 g erhalten wurden. III. Versuche über die Wirkung von Oxydationsmitteln bei der Holzverzuckerung. Die Hydrocellulose, deren Formel wir als Ci2H22On (C. 15, I, 933) annehmen wollen, können wir unter Zugrundelegen der einfachsten Celluloseformel uns aus zwei Molekülen Cellulose durch Aufnahme von einem Molekül Wasser entstanden denken : 2CeH10O5 + H20 C12H22Ou Cellulose Hydrocellulose. Der Kohlenstoffgchalt sinkt dabei von 44,44 auf 42,11%, während der Sauerstoffgehalt von 49,39 auf 51,46 und der Wasserstoff von 6,17 auf 6,34% steigt. Es lag nun der Gedanke nahe, daß die Hydrocellulose viel leichter in Zucker überführbar sei, als die Cellulose, da sie nach ihrer Zusammensetzung dem Zucker schon um ein Molekül Wasser näher steht, als die Cellulose. — Die Hydrocellulose wurde nach der Vorschrift von U 1 z e r (Fischer- Wagner, Jahresber. der Chemischen Technologie 1905, II, 192) dargestellt, Mit 40 g dieser Hydrocellulose wurde eine Kochung mit 500 cera 0,5%iger Schwefelsäure während ca. 3 Stunden auf 153—160,5° ausgeführt. Die weitere Aufarbeitung geschah, wie eben angeführt, und es wurden aus 100 g trockener Hydrocellulose IT, 95 g Alkohol erhalten. Die Zahl ist die höchste von mir erhaltene Ausbeute. Es wurden erhalten als Mittelwerte aus : Holz 6,02% Alkohol Strohstoff 9,56% Sulfitcellulose 12,83% Hydrocellulose .... 17,95% Nun wurde versucht, durch Zusatz von Oxydationsmitteln aus den Ausgangsmaterialien vorübergehend der Hydrocellulose ähnliche Substanzen zu erzielen, die analog der guten Ausbeute der reinen Hydrocellulose die Ausbeute erhöhen müßten. Der Zusatz von Oxydationsmitteln zur Hydrocellulose verminderte die Ausbeute, so z. B. bei Zusatz von 2%igem Wasserstoffsuperoxyd auf 11,12%, bei Chromsäure sogar auf 3,95%. A. Zusätze von Wasserstoffsuperoxyd zu Einschlüssen von celluloseh altigen Substanzen und 0,5% iger Schwefelsäure. Es wurden in drei Ansätzen je 40 g Sägespäne, Sulfitcellulose, Strohstoff mit 500 cem 2%igem Wasserstoffsuperoxyd und 2,5 g konzentrierter Schwefelsäure (so daß also eine 0,5%ige Säure vorhanden war), während drei Stunden bei 7,4—9 Atm. auf 163—166° erhitzt, Nach dem öffnen wurde noch einige Minuten gekocht und dann, wie oben angegeben, weiter ge arbeitet: es ergaben sich folgende erhöhte Ausbeuten : bei Invertierung Zusatz von ohne Zusatz 2 % igem H202 Holz 6,02 9,05 u. 10,76 Sulfitcellulose 12,38 14,64 Strohstoff 9,56 10.26 Bei Holz ist die Erhöhung, die durch Wasserstoffsuperoxydzusatz bewirkt wird, am größten, bei Strohstoff am geringsten. B. Versuche mit chromsaurem Kalium als Oxydationsmittel. Da dieselbe Sauerstoffmenge, wie bei den Versuchen mit Wasserstoffsuperoxyd angewendet werden sollte, so setzte ich jedem Ansatz 28.8 g bichromsaures Kalium und 38,4 g Schwefelsäure zu (500 com 2% H202 enthält 10 g H202 oder 4,7 g aktiven Sauerstoff; dieselbe Menge liefert genannte Menge biehromsaures Kalium). Die schädliche Wirkung der Chromverbindungen auf die Hefe wurde durch Fällen mit Kalk vor der Vergärung aufgehoben. Je 40 g Sägespäne, Sulfitcellulose oder Strohstoff wurden unter gleichen Verhältnissen während 3 Stunden auf 7,4—8,7 Atm. erhitzt. Nach dem öffnen wurde die hellgrüne Lösung, wie oben erwähnt, weiter verarbeitet. Die Ausbeuten stellten sich bei Invertierung mit Zusatz von ohne blohrom saurein Zusatz Kalium und Schwefelsäure Holz 6,02 3,23 Sulfitcellulose 12,38 2,34 Strohstoff 9,56 3,23 . Die Einwirkung von Kaliumbichromat verminderte nach vorstehenden Versuchen die Alkohol ausbeute erheblich. C. Versuche mit Kaliumpersulfat als Oxydationsmittel. Das Kaliumpersulfat liefert beim Zerfall nach der Formel : K2S208 = K2S04 + S02 + 02 also 270 g Kaliumpersulfat 32 g aktiven Sauerstoff. Um nun die gleiche Menge aktiven Sauerstoffs wie bei den Versuchen mit Wasserstoffsuperoxyd und chromsaurem Kalium zu erhalten, waren 40,7 g Kaliumpersulfat notwendig. Es wurden parallele Versuche mit je 40 g Holzsägespänen, Sulfitcellulose und Strohstoff ausgeführt, die als Ausbeuten untenstehende Zahlen berechnen ließen. bei Einschluß *eÄa'z ohne Zusatz "^HS* Holz 6,02 4,22 Sulfitcellulose 12,38 7,32 Strohstoff 9,56 2,57 Nach Zusatz von Kaliumpersulfat sank also die Ausbeute bei der Verzuckerung der angewendeten oellulosehaltigen Rohmaterialien erheblich. D. Zusatz von Ozon zu den Einschlüssen bei der Holzverzuckerung. Von Dr. Roth und R. Gentzen wurde zur Erhöhung der Zuckerausbeute bei der Verzuckerung der Sägespäne Ozon als Oxydationsmittel vorge schlagen und das Verfahren durch D. R. P. 147 844a geschützt. In der Patentschrift wird ausdrücklich erwähnt, daß das Ozon die Oxydation des Lignins in Zucker bewirke und gleichzeitig die gärungshindernden Stoffe durch Oxydation ausscheide. Auffallend ist die Behauptung, daß die inkrust ierenden Körper den Kohlehydraten sehr nahe stehen, während J. B. Lindscy (Inaugural-Dissertation, Göttingen 1891) ausdrücklich erwähnt, daß er aus den ligninreichen Sulfitlaugen der Sulfitcellulosefabriken nur geringe Mengen von Lävulinsäure erhalten habe und nach den Untersuchungen von Wehnet (Lieb. Ann. 343, 333) die Entstehung der Lävulinsäure ein unzweifelhaftes Zeichen für die Gegen wart von Kohlehydraten ist. Dem Patente nach wird das Ozon unter 3—4 Atm. Druck während 10—30 Minuten dem Rohmaterial zugeführt und dann mit 3%iger Schwefelsäure gekocht. Angaben über Konzentration des Ozons fehlen vollständig; ebenfalls sind die Angaben über die Ausführung des Prozesses sehr mangelhaft. Es finden sich nur einige Notizen über Ausbeute, z. B. sollen aus 100 kg Kiefernholz 34 kg vergärbare Dextrose zu erhalten sein; das sind bei einem Gehalt von 50% Cellulose 61,2% Ausbeute, bei Fichtenholz und Stroh sind sie noch höher angegeben. Es wurden von mir zuerst zwei Versuche mit beliebigem Ozongehalt ausgeführt bei einer Einwirkungsdauer von 25—30 Minuten. Der erste Prozeß wurde in der Wärme, der letztere in der Kälte ausgeführt. Die Einleitung des Ozons geschah bei gewöhnlichem Drucke, da mir Apparate zur Überwindung von 2—4 Atm. nicht zur Verfügung standen. Die Alkoholausbeute war im ersteren Falle 1,5 g aus 100 g trocknen Sägespänen und im zweiten Versuche 4,1 g; also stets geringer als bei einfachem Kochen mit Schwefelsäure. Der folgende Versuch schließt sich an das Patent näher an, 40 g Sägespäne mit 15% Wassergehalt wurden 20 Minuten einem 2%igem Ozonstrom ausgesetzt, darauf in 3%iger Schwefelsäure während 1 Stunde auf 4—5 Atm. erhitzt. 200 cem des auf 600 cem aufgefüllten Filtrats ergaben bei der Vergärung 105 cem alkoholisches Destillat vom spez. Gew. 0,99903, woraus sich auf 100 g trocknes Holz 4,72 Alkohol berechnen. Zwei Versuche wurden mit 6%igem Ozon während 21/i Stunde ausgeführt. Die Sägespäne waren mit der dreifachen Menge Wasser befeuchtet und in ein U-Rohr gefüllt, so daß der Ozonstrom darüber hinweggeleitet wurde. Zwei weitere Versuche mit 0,7% Ozon wurden bei der Einwirkungsdauer von 10' und 30' ausgeführt. Ein anderer mit 1,8% Ozon bei einstündiger Einwirkung. Die Resultate sind in untenstehender Tabelle veranschaulicht. Leider wurde für die Darstellung des Ozons erst nach mehrfachem Wechseln ein iialbwegs brauchbarer Apparat in der Berthelot sehen Röhre gefunden, aber auch hier war eine vollständige Gleichmäßigkeit des Ozonstromes nicht zu erzielen, so daß die Bestimmungen der 03 -Mengen sehr ungenau ausfielen ; aber schon im Vergleich mit diesen Werten ist deutlich zu ersehen, daß die Zuckermenge bei steigender Ozonmenge abnimmt. Betrachten wir folgende Versuche : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Nr. DdOaeuserr- Einwirkung Verbrauchter LiOitenrjn % o„ also Oa "o c_* N 51 10' o 0,7 14 cem 6,61 = 45 20' 4 2,0 80 cem 4.7 53 30' 7 0,7 49 cem 5,78 55 60' 13 1,8 234 cem 0,6 47 135' 35 5,5 1925 cem 0,35 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Aus diesen Zahlen ist zu erkennen, wie die Alkoholausbeute sich proportional der Ozonmenge verringert. Ein Teil des Ozons wird durch die Wärme, bei der die Einleitung erfolgt, ist, zerstört worden sein, aber trotzdem ist noch sehr deutlich die ungünstige Einwirkung des Ozons zu erkennen. Nach 10 Minuten (51) war bei einem 0,7%igen Ozonstrom und 50° noch keine schädliche Einwirkung zu verzeichnen. Die Ausbeute fiel aber schon bei 30 Minuten Dauer des 0,7%igen Ozonstroms. Bei Anwendung des stärkeren 2%igon Ozonstromes ist schon nach 20 Minuten eine bedeutend größere Differenz zu ersehen, da die Menge Ozon auf 80 cem angestiegen ist. Analog dem Steigen der Ozonmenge fällt die Alkoholausbeute bis auf 0,35 g für 100 g Holz. — Um festzustellen, wie die 03- Einwirkung auf Sulfitcellulose wirke, wurde folgender Versuch angesetzt. 40 g Sulfitcellulose von 9,5% Wassergehalt wurden mit 150 cem Wasser benetzt und während einer Stunde einem Ozonstrom von 1,81% Os ausgesetzt, bei einer Wasserbadtemperatur von 39°. Darauf wurde die Sulfitcellulose während einer Stunde bei 155—160° mit 300 cem 3%iger Schwefelsäure gekocht. Die Vergärung lieferte so wenig Alkohol, daß sich auf 100 g trockne Sulfitcellulose 1.42 g Alkohol berechnet. Das Ozon wirkt also auch bei Sulfitcellulosekochung schädlich. Zusammenfassung der gewonnenen Ergebnisse. Bei den vergleichenden Versuchen über die Verzuckerung cellulosehaltiger Rohmaterialien, des Holzes, des Sauerstoffs und der Sulfitcellulose wurde die von Simonsen angegebene Ausbeute von 6 g Alkohol aus 100 g trocknem Holze durch zwei Versuche bestätigt. Die größte Ausbeute an Alkohol ergab die prozentual den höchsten Cellulosegehalt besitzende Sulfitcellulose mit durchschnittlich 12,83 g Alkohol aus 100 g Ausgangsmaterial. Es ist dies die doppelte Menge des aus Holz zu erhaltenden Alkohols. Da das Holz ungefähr 50% Cellulose enthält, scheint das ein untrüglicher Beweis dafür, daß der entstandene Zucker der Cellulose entstammt und nicht dem Lignin, wie es P a y e n annahm, und es auch heute noch oft angenommen wird. Die Zusätze von schwefliger Säure erwiesen sich, entgegen den Angaben der Patente von C 1 a s s e n - Aachen, als die Zuckerbildung hindernd ; auch nicht in einem einzigen Versuche wurden befriedigende Resultate erzielt. Der Zusatz von Oxydationsmitteln zu den Einschlüssen verminderte in den meisten Fällen die Bildung von Zucker ; nur beim Zusätze von Wasser stoffsuperoxyd konnte eine höhere Ausbeute erzielt werden; beim Holze eine bis 50% der sonst zu erhaltenden Alkoholmenge betragende Zunahme. Aus diesem Resultat kann man schließen, daß schwache Oxydationsmittel die Cellulose in eine der Zuckerbildung geneigtere Verbindung überführen. Da die Ausbeute an Alkohol aus Hydrocellulose den Höchstwert von 17,95% erreichte, so liegt der Schluß nahe, daß daa Wasserstoffsuperoxyd die Cellulose in Hydrocellulose umwandelt, und dieser die größere Zuekerbildung zu verdanken ist. Die anderen angewandten Oxydationszusätze, wie das Kaliumbichromat, das Kaliumpersulfat und das Ozon, sind zu starke Agenzien ; sie oxydieren die Cellulose über die Hydrocellulose hinweg zu anderen Substanzen. Der durch das Patent von Dr. Roth und Gentzen geschützte Zusatz von Ozon ergab das vollständige Gegenteil der dort aufgestellten Behauptung, indem der Ozonzusatz eine Verminderung an gärfähigem Zucker bewirkte. Die Abnahme der Ausbeute erfolgte ziemlich proportional den zugeführten Ozonmengen. Im allgemeinen ist also die Ausbeute an Alkohol durch Hydrolyse des Holzes eine recht geringe, wenn man bedenkt, daß theoretisch aus 100 g Cellulose 56,91 g Alkohol entstehen können; denn selbst im günstigsten Falle wurden bei einfacher Hydrolyse nicht viel mehr als 25% der berechneten Menge Alkohol erzielt. Es liegt darum die Annahme nahe, daß aus dem Cellulosekomplex (CgHi0Os)x nur ein Teil abgespalten und in vergärbaren Zucker überführbar ist. ==== Zeitschrift für angewandte Chemie - Journal of Applied Chemistry (English) November 13, 1908 ==== On the question of the formation of alcohol from cellulosic materials. By Dr.-Ing. Theo Koerner. (From the organic chemistry laboratory of the Technical University of Dresden. Communicated by E. v. Meyer.) (Entered. D. 12/10. 1908.) The thought and the quest to obtain wood alcohol by hydrolysis, that is conversion to glucose and subsequent fermentation is older than one would think. Already in 1819 found in Gilbert's Annals of Physics (63, 348) and Ann. Chim. (18, 172), a treatise. "About the transformation of the pulp by means of sulfuric acid in rubber, sugar, and a peculiar acid, and by potash in Ulmine", discovered by H. Braconnot This work was supported by the author, the professor in Nancy. was submitted on 4 November 1819, the French Academy of Sciences. One year later it was reprinted in Dingl. Journ. (I, 312) . Braconnot points out that the old chemists had contented themselves with the view, that application of sulfuric acid produced charring on a plant. Among modern chemists Berthollet, Fourcroy and Vauquelin later endeavored to further clarify this phenomena. He had now come to different conclusions, and that when treated with cold sulfuric acid of sp. Wt. 1,827 (91.5%) he had observed a strong heating from escaping sulphurous acid. When diluted, filtered and neutralizing with carbonate of lime, a gummy mass was excreted. Heat up this gum with dilute sulfuric acid, and sugar arises from it. This sugar was crystallizable and fermentable. The discovery caused a sensation, and high hopes on their technical execution were made. Already in 1820 there is another treatise on the subject by Vogel which was similar as Braconnot and his attempts expanded on paper, cotton, straw, cork and old manuscripts. 1854 directs Arnould again the general interest to the method by a treatise in Dingl. Journ. (134, 219). He hopes through the introduction of alcohol from wood again supplied a large part of the crop of its initial utilization. According to him, he can transform 80-90% of certain woods in soluble products by applying 110 parts of concentrated sulfuric acid to 100 parts wood. Melsens writes 1855 in "Genie Industriel" about reducing the concentration of the applied sulfuric acid to 3-5% and shall follow the procedures mainly on manufacturing residues. He is the first who worked in an autoclave and temperatures up to 180 ° applying an end. On a suggestion of the Polytechnic Association in Munich, 1855 Pettenkofer dealt with this topic and published his results in Bayr. Arts and Crafts Journal in 1855 (S. 136). He led there from comparative calculations between distillery process and Holzhydrolyse, which were to the detriment of the latter. Tribouillet tried already in 1854, otherwise exploit the concentrated sulfuric acid of wood saccharified solution by manufacturing used the insights to decompose the calcium soaps of tallow candles. 1855 was founded in wood fiber under the direction of chemist Pelouze in Paris a factory for the manufacture of alcohol. But she did not seem to have long existed; because only once (1859), we find a reference by a publish Pelouze treatise (Dingl. Journ. 150, 394), which brings nothing really new. Apart from this factory should after Varrentrapp (Dingl. Journ. 181, 233) have a factory-like pursuit of the spirit of wine preparation from wood in Geneva are trying the "large quantities" intended to win next Alcohol pulp from encrusting substances. 1867 published experiments of l'aycn on Cellulosc. You also assume the pulp representation by should be obtained from the lignin-containing black liquor as a byproduct alcohol. Dr. J. MattheuB wants to win fermentable peat dextrose. On 2/12 1894 it patented (DRP 92079) in Germany the chemist Simons s from Christiania a method for rapid saccharification of cellulosic materials with the help of 0.4-0.8% strength acids at 7 Atm. Pressures and above. The process should be completed in 10-30 minutes. Simonsen won from 1 kg wood 60g Alcohol, ie an over earlier specifications rocht modest yield. In the spring of 1898 a longer work of the above-mentioned inventor in Germany became known. She was rewarded by the polytechnic clubs to Christiania with a gold medal and through this magazine (II, 195 [1898]) spread, Si monsen experimented on the influence of the I> ruckcs, the amounts of water, the inversion time and the amount of acid in the inversion cellulose-containing materials at. He came with the use of Sulphite to sugar yields of 45%, but he keeps higher yields for excluded, because the high temperature during the inversion of the cellulose effecting partial decomposition of sugar formed. Unfortunately, he determined the quantity of sugar with Fehling's solution and tried NNR to lead an example to prove that all determined by Fehling see solution was fermentable sugar. In the experiments with sawdust he finds the most advantageous yield at 1/4 constant heating of 100 g sawdust with 500 cc of 0.5% sulfuric acid at 9 atm. Pressure. The fermentation of the resulting sugar tests resulted in only a few attempts to positive results. Here was obtained as a maximum yield of 100 g of sawdust 6.5 cc (5.1 g ds) absolute alcohol. He comes to the conclusion that wood let be inverted unexpectedly lighter than cellulose; and the experiments appear to confirm that the resulting sugars of cellulose of Holzos entstamme, since sawdust the sugar yield of the corresponding receivable from cellulose of wood acceptance. On February 15, 1899 the Dr. Alexander Classen from Aachen was the first patent on a Holzverzuckerungsverfahren issued (DRP 118 868). It is strongly pressing a mixture of sawdust and sulfuric acid by 57 ° Be. The mass is heated by itself, is then crushed and boiled with water. A process (DRP 118 540), the yield in the timber inversion by boiling with sulfuric acid and sulfuric acid or sulfurous acid and oxidation by subsequent same increase to sulfuric acid, to him on 24/9 was. 1899 protected. This is followed by three patents of 12 /. 5 1900 (D. R. P. 118 542, 118 543, 118 544). The first is that you heat the wood substances with hydrogen chloride in an autoclave and then importing sulfuric acid to form sulfuric acid. The second patent will the yield of sugar increased due to heating the raw material with sulfur dioxide and then initiates the formation of sulfuric acid chloride. The third patent is that the mixture is heated until the sawdust with sulphurous acid and introduced to their conversion into sulfuric air or oxygen. The introduction of sulfurous acid, the chlorine and air or of oxygen is carried out by all three patents at 120-125 °. - In a patent from the 17th / 10th 1900 (DRP 121 869) is C 1 according to the treat- ment of the wood with patented Sehwefelsäureanhydriddämpfen. For this is the patent of addition 123 911 of 17 / 10th 1900 also imposed on the heating at 125-135 ° subsequent claim. While Classen will achieve an increase in yield by the addition of sulfur dioxide, looking G entzen and Dr. Roth (DRP 147 844a of 26 / S. 1901) in the ozone yield enhancing agent. If the addition of ozone on the one hand Ligninsubstanzen to fermentable Pro ucts oxidize, on the other hand, the fermentation towards -promoting substances eliminated by oxidation. According to the patent obtained with the use of ozone from 100 kg of pine wood 34 kg fermentable dextrose and from 100 kg of spruce even 40 kg. Man working with 3-4% strength sulfuric or hydrochloric acid, and at a pressure up to 20 atm. The duration of the process is between 10 to 30 minutes. On 4 /. 9 1904 spoke of Dipl.-Ing. Ripe Scheidt at a meeting of the District Association Saclisen- Anhalt on the production of alcohol from wood waste. He's been through the trials Simonsen see numbers and other individual work, for. Example, the patent of C 1 ate verified. He comes in contrast to P Ayen and consistent with Siracnsen to the conviction that the only alcohol from cellulose tribal, and will assist the lignin in the wood saccharification rather disturbing than a help. He then finds that see ate at the C 1 patents best 8.5-9.5% strength sulfurous acid is applied and the favorable duration of the test is 1 hour; the favorable temperature lies between 140-150 ° at 4-5 atm. In 1905 (8 / G.) Was the Kaufmann Arno natives of Vienna in England granted a patent for the presentation of sugar from cellulosic materials. It dealt with the raw materials with 5% solutions of caustic alkali at 30-40 ° with a portion of the components, which he called "amyloid-like", goes into T.iösung. By boiling the filtered liquors the "amyloid-like components to pass into sugar. Let's take a look back at what has been said, we find that the information on the yield of sugar and alcohol very diverge. The highest figures are recorded in the oldest literature; so Braconnot wants from 20.4 g canvas gained 1817 23.3 g sugar. Often confined in the yield details . the term "large quantities" sugar Arnould found in 1854 still 100 g timber 110 g sugar Later, information about the alcohol yield occur, but they are already significantly smaller;. so B asset was 100 g timber 32 cc alcohol, Ludwig 36.6 g (about 41 cc) alcohol. In 1867 Payon 100 g timber 21.3 g sugar and represents the end of 1898 Simonsen60g alcohol from 1 kg wood. From the foregoing, it is apparent how often you have already dealt with the saccharification of cellulose, and the großen- differences that were included in the yields, are evidence of the ignorance of the most important influences. The only match was probably obtained from Simonsen and of Ripe Scheidt, both received approximately 6 g of alcohol 100 g timber, a yield, which is also confirmed by the present study. Of course, the differences and probably especially the incompleteness of the papers make it difficult to carry out such tests and verification of information significantly. The arrangement of my experiments was the following generally. The raw material (sawdust, sulphite of H Dele material in Heidenau and straw by Dietrich in Weissenfels) was, according ever and the experiments, shorter or longer Time with dilute or more concentrated sulfuric acid, some with and some without the addition in an approximately 2 1 autoclave heated. The autoclave was lined with lead and copper protected by him heated glass flame through a layer of air, so that the Bunsen flame could effect no direct destruction of the trapped substances. Often has also worked in the water bath. After completion of the cooking, the acidic liquid was filtered off from the solid residue and the first 500 cc for further processing. The filtrate was colored differently according to the type of starting materials, from dark reddish brown to bright orange. So saw filtrates of wood inclusions of maroon, red ones of sulphite and approaches with straw fabric sohön reddish. Allowed to stand in an acidic solution, divorced after a while even the residues of similar masses. Alkalies, the solutions were dark in color, resulting from the sawdust darker than originating from sulfite and these darker back than those of straw fabric. In the first experiments, the sugar content with Fehling's solution by weighing the oxidized copper to cuprous oxide was determined. However, it soon turned out that the calculated from the amount of sugar alcohol is not the obtained by the fermentation same came in all cases, as Simonsen (these Z. 11, 225 [1898]) takes, as two here about employees experiments as 21, 6: 20.0 behaved, so were only 8% difference and you have to expect the distillery process with 10-20% loss. So I found, for example quite matching values ​​(at least within the limits of the distillery loss) for the following Vorsuchen. Sawdust with 0.5% sulfuric acid inverted (no. 1): Alcohol calculated from sugar reduction. 5.21 g by direct fermentation obtained 5.21 g Sawdust with 0.5% sulfuric acid inverted after previous treatment with water vapors (no. 3): calculated from the sugar reduction. , , 7.39 g directly by fermentation obtained 6.83 g Sulfite with 0.5% sulfuric acid with the addition of 2% hydrogen peroxide (no. 14) is inverted: calculated from the reduction in number .... 16.08 g directly by fermentation 14.64 g Straw material with 0.5% / sulfuric acid with addition of 2% hydrogen peroxide ^ inverted (no. 15): from the determined by reduction Sugar amount charged 8.51 g directly by fermentation 8.36g In contrast to these are provisions where the differences are in part very significant: (No. 2) When addition of S02 showed the inclusion of the experiment no. 1 calculated from the glucose Amount of alcohol 2.43 g instead of 1.74 g (no. 2), obtained by fermentation, and Amount of alcohol 9.56 g instead of 5.52 g (no. 6), obtained by fermentation. Trying '8, in which sulphite easy with 0.5% sulfuric acid at 8 atm. was cooked, gave a liquid whose alcohol yield should be according to the method with Fehling's solution 10.94, and returned from the fermentation only 8.43. Also I got the inverting straw fabric with 0.5% sulfuric acid 8.52 g of the sugar content instead 5.4g in direct fermentation. These errors are due to other reducing substances here, which are not fermentable sugar; so were in Experiment Nos. 11 even larger amounts of an aldehyde with schwefligsaurer Fuchsin be proven solution that visit proved by red-Scsamöl as furfural. In this experiment the amount of alcohol, calculated from the see through Fehling solution specific sugar content was 7.66 g. While only 2.12 g of alcohol obtained by fermentation. Even Simonsen wants (this Z. 8. 196 [1895]) have odor of furfural observed. For these reasons, the alcohol was determined directly by fermentation in all experiments, and in the following manner: A portion of the filled to a certain volume filtrate was neutralized with carbonate of lime, displaced from Rückständeabfiltriert, with a few drops of acid and yeast at 25-30 "during two to three days fermented. The fermented liquid of the yeast wTirde separated and distilled off after addition of a little tannin. After about one Thirds had gone over, the distillation was adjusted to offset the distillate blunting about acetic acid formed with little carbonate of lime, and even distilled once to several times (as required). The specif. Weight of the obtained alcohol-containing liquid was always determined at the same temperature with the pycnometer. 1. Comparative experiments on the saccharification of sawdust, straw pulp and sulphite with dilute sulfuric acid. The question of whether formed by hydrolysis of cellulose from wood sugar entstamme alone, or whether the Ligninsirbstanzen it have proportion, has been much discussed. So took z. B. 1867 P a y c n at. that the sugar arises from the lignin and cellulose would not be attacked because he wanted to get in the big wooden with hydrochloric acid pure cellulose for the manufacture of paper, and thought it to be converted into sugar that incrusting substances. That pure cellulose with sulfuric acid is hydrolyzed, it is clear today, and only the question of whether lignin is transferred into sugar is to answer nocli. So the lignin after the trials of Lindsey appears to have no relations with hexose, because it was not possible from the timber liquid (sulphite) to obtain levulinic acid that occurs very easy from the carbohydrates. If one were to determine lignin seen as no carbohydrate, as well as its inversion would be virtually impossible. - From Simonsens Try to get to the conviction that the resulting in the inversion of sugar comes from only the cellulose as wood 20% sugar, cellulose 45% sugar were obtained, and assuming that wood contains 50% cellulose, which consists of the sugar Holze gained about the receivable from the cellulose of the wood alone would correspond. Since the Simonsen see provisions with Fehling's solution, have been carried out, and this method, as we have seen, is not perfect, so several tests with wood sawdust, sulphite and straw material under the same conditions were carried out by each 40 g in 500 cc of 1 / 2% sulfuric acid 'for two hours 6-8 Atm. and then heated, as mentioned above, were processed further. The yields of alcohol were: Holzsage- sulfite straw chips cellulose material 5:21% 13.69% 9:56% 6.83% 11.97% Medium 6.02% 12.83% 9.56% The highest yield gave the sulphite with 12.83 g alcohol on average per 100 g of dry feedstock. It is about twice the yield value for sawdust. Taking the sawdust with 50% cellulose. so the alcohol obtained from the sawdust would correspond to the cellulose of the wood from the receivable alone. The experiments confirmed the Simonsen see details and fortified the view that the sugar entstamme alone the cellulose and the lignin is not convertible into sugar. To be able to go into more detail on this point, were provisions of Cellulosegehaltesausgeführt, namely for wood and sulphite by the method of Fremyund Terreil (Z. Anal. Chem. 1, 282). The 'Unlocking happens here by 36stündiges standing in chlorinated water. Then the Küekstand is boiled with potash, which is now to solve the non-cellulose substances easily. Finally, we still washed out with dilute acid and dried at 136 °; by weighing in a platinum dish, annealing and reweighing the cellulose is determined. There were obtained 0.4387 g of cellulose by this method from 0.8804 g of dry wood, and from 0.8749 g 0.4224 g, which would correspond to 49.83 and 48.28%. Even less well-tune the values ​​for sulphite agree among themselves. From 0.9386 g and 0.9617 g 0.7845 g sulphite cellulose obtained, ds 83.598 and 79.693%. The content of the straw material was cellulose and by the method of Henneberg Determined Wender (Eisner, practice of the chemist in the study of food, p.44). . The method is widely used in food chemistry to determine the "crude fiber", but is not suitable for wood, because the wood was seemingly not dispersed enough, the straw material was, when cooking to a fine slimy mass, and the results were as follows: Applied substance .... 2.6396 g 3.3728 g Difference between the weighted at 105 ° cellulose and its ignition residue 1.8241 g 2.3167 g in% ie 69.18 and 68.69 If you compare the numbers to cellulose yields over, we find the following one: % Alkoholan Cellulose yield Wood 49.05 6.02 (6.02) Sulphite 81.64 12.83 (10.02) Straw material 68.90 9.56 (8.46) The numbers behave superficially proportional. For sulphite and straw material, one can calculate the expected numbers of yields from the cellulose content and the alcohol yields of timber. The figures are included in parentheses. The agreement is a very bad. The reason that the yields are greater in reality is likely to be due to the bad method of cellulose provision which provides for low values. II. Experiments on the effects of sulfurous acid in the saccharification of wood. It is widely believed that the sulfurous acid exerts a beneficial effect on the yield of sugar in the wood saccharification. The oldest note in this regard is probably the American patent 654 518 (Chem-Zeitung. 24, 693 [1900]). About the effectiveness of sulfurous acid can be found in the literature are two views: 1. They want the sulfurous acid as the acid needed in the inversion use (in general. Chemikerzeitung 5, 646 NND C 1 ate, DRP 130 980). 2. They want to achieve by pretreatment with sulphurous acid an easier vulnerability of the material and create by oxidation to Schwefe acid by means of air, oxygen or chlorine necessary for the inversion acid. In this direction to move the patents of C1 ate: DRP 118 540, 118 543, 118 544th First, about twice per 40 g sawdust pretreatment with 2% were fixed Sweet water for two hours at 6-7 atm. subject and cooked it with 0.5% sulfuric acid at the same pressure. The further processing was done, as mentioned above, to give 100 g of dry sawdust 4.16g and 5:52 g alcohol. From this it appears that pretreatment with S02 does not increase, but rather decreases the yield of alcohol as S02 without -Zusatz 6.02 g were obtained. III. Experiments on the effect of oxidizing agents in the wood saccharification. The hydrocellulose whose formula we will assume as Ci2H22On (C. 15, I, 933), we can think originated from two molecules of cellulose through intake of one molecule of water ourselves inter alia with the simplest of cellulose formula: 2CeH10O5 + H20 C12H22Ou Cellulose hydrocellulose. The Kohlenstoffgchalt drops from 44.44 to 42.11%, while the oxygen content of 49.39 to 51.46 and the hydrogen of 6.17 to 6.34% increases. It was now close to the idea that the hydrocellulose much lighter in sugar should be converted, as the cellulose, as they sugar already a molecule is according to their composition of water closer than the cellulose. - The hydrocellulose was prepared according to the directions of U 1 zer (Fischer Wagner, Jahresber of Chemical Technology in 1905, II, 192)., With 40 grams of this hydrocellulose a boiling with 500 Cera 0.5% sulfuric acid for about 3 hours at 153 to 160.5 ° run. The further work was done, as just stated, and there were 100 g dry hydrocellulose IT, received 95 g of alcohol. The figure is the highest obtained by me yield. There were obtained as averages of: Wood 6.02% alcohol Straw fabric 9.56% Sulphite 12.83% Hydrocellulose .... 17,95% Now it has been attempted temporarily to achieve by adding oxidizing agents from the starting materials of hydrocellulose like substances, which would increase the yield analogous to the good yield of pure hydrocellulose. The addition of oxidizing agents to hydrocellulose decreased the yield, such. As the addition of 2% hydrogen peroxide at 11.12%, with chromic acid even at 3.95%. A. additions of hydrogen peroxide to inclusions of celluloseh AltiGen substances and 0.5% sulfuric acid. There are three approaches in each 40 g sawdust, sulphite, straw fabric with 500 cc of 2% hydrogen peroxide and 2.5 g of concentrated sulfuric acid (ie so that a 0.5% acid was present), during three hours at 7,4- 9 atm. heated to 163-166 °, After the open for a few minutes yet was boiled and then, as stated above, further work ge: it arose following increased yields: with inversion added without the addition of 2% H202 Wood 6.02 9.05 u. 10.76 Sulphite 12.38 14.64 Straw fabric 9.56 10:26 When wood is increasing, which is caused by Wasserstoffsuperoxydzusatz, greatest, and of straw fabric at its lowest. B. Experiments with potassium chromate as an oxidant. Since the same amount of oxygen, as in the experiments should be used with hydrogen peroxide, so I sat each batch of 28.8 g and 38.4 g of potassium bichromsaures sulfuric acid (500% com 2 H202 H202 contains 10 g or 4.7 g of active oxygen, the same amount delivers quantity referred biehromsaures potassium). The harmful effects of chromium compounds on the yeast was removed by precipitation with lime prior to fermentation. The 40 g sawdust, straw or sulphite pulp were in the same circumstances for 3 hours at 7.4 to 8.7 atm. heated. After the open was the light green solution, as mentioned above, further processed. Yields resorted to inversion with the addition of without blohrom saurein Additional potassium and sulfuric acid Wood 6.02 3.23 Sulphite 12.38 2.34 Straw fabric 9,56 3,23. The action of potassium dichromate reduced by preceding experiments, the alcohol yield significantly. C. Experiments with potassium persulfate as an oxidizing agent. The potassium provides the decay according to the formula: K2S208 = K2S04 + S02 + 02 Thus 270 g of potassium persulfate 32 g of active oxygen. In order to get the same amount of active oxygen as in the experiments with hydrogen peroxide and potassium chromate, 40.7 g of potassium persulfate were necessary. It parallel experiments with 40 g wood sawdust, straw and sulphite pulp were carried out, which could be calculated as yields below numbers. for inclusion * eÄa'z without adding "^ HS * Wood 6.02 4.22 Sulphite 12.38 7.32 Straw fabric 9.56 2.57 After the addition of potassium persulfate so the yield dropped significantly during the saccharification of applied oellulosehaltigen raw materials. D. addition of ozone to the inclusions in the wood saccharification. From Dr. Roth and R. Gentzen was to increase the sugar yield in the saccharification of sawdust ozone propose measures as an oxidizing agent and the method by DRP 147 844a protected. The patent is explicitly mentioned that the ozone causing the oxidation of lignin in the sugar sector by separating the fermentation-inhibiting substances by oxidation. Striking is the assertion that the inkrust ierenden body are carbohydrates very close, while JB Lindscy (Inaugural Dissertation, Göttingen 1891) explicitly stated that he had obtained from the lignin-sulphite of Sulfitcellulosefabriken only small amounts of levulinic acid and according to the investigations of Wehnet (Lieb. Ann. 343, 333) the emergence of levulinic acid is an undoubted sign of the counter-presence of carbohydrates. The patents after the ozone is under 3-4 atm. Pressure for 10-30 minutes supplied to the raw material, and then boiled with 3% sulfuric acid. Information on concentration of ozone are completely absent; also the information on the execution of the process are very deficient. It can be found just a few notes on yield, for example, should be obtained from 100 kg of pine wood 34 kg fermentable dextrose. these are at a level of 50% cellulose, 61.2% yield, with spruce wood and straw, they are given even higher. There were of me first two attempts of any ozone content performed at an exposure time of 25-30 minutes. The first process was carried out in the heat, the latter in the cold. The introduction of ozone happened at ordinary pressure because my equipment to Overcome 2-4 Atm. were not available. The alcohol yield was in the former case, 1.5 g of 100 g of dry sawdust and the second attempts 4.1g; So always lower than with simple cooking with sulfuric acid. The following experiment joins the Patent closer to, 40 g sawdust with 15% water content were exposed to 20 minutes a 2% ozone stream it in 3% sulfuric acid for 1 hour at 4-5 atm. heated. 200 cc of the filled to 600 cc of the filtrate gave spec during the fermentation 105 cem alcoholic distillate from. Resulting in calculated on 100 g dry wood alcohol 4.72 wt. 0.99903. Two experiments were carried out with 6% ozone for 21 / i hour. The sawdust were wetted with three times the amount of water and placed in a U-tube, so that the stream of ozone was passed across it. Two further experiments were performed with 0.7% ozone by the action period of 10 'and 30'. Another 1.8% ozone at one hour exposure. The results are illustrated in the table below. Unfortunately, for the presentation of ozone only after several changes see a iialbwegs useful apparatus in the Berthelot tube found, but here was a complete uniformity of the ozone stream can not be achieved, so that the provisions of 03 quantities turned out very inaccurate; But in comparison with these values ​​can be clearly seen that the quantity of sugar decreases with increasing amount of ozone. Consider the following tests: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! No. DdOaeuserr- Effect Spent LiOitenrjn % O "So Oa "O * c_ N 51 10 ' O 0.7 14 cem 6.61 = 45 20 '4 2.0 80 4.7 cem 53 30 '7 0.7 49 5.78 cem 55 60 '13 1.8 234 0.6 cem 47 135 '35 5.5 0.35 1925 cem !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! From these figures it can be seen how the alcohol yield in proportion of the reduced amount of ozone. A part of ozone is determined by the heat at which the initiation takes place, is, have been destroyed, yet the adverse effect of ozone is still very visible. After 10 minutes (51) strength stream of ozone and 50 ° no harmful exposure was recorded at 0.7%. However, the yield dropped already at 30 minute duration of 0.7% ozone stream. When applying the stronger 2% igon ozone stream already after 20 minutes a significantly greater difference can be seen, since the amount of ozone has risen to 80 cc. Analogous to the rise in the amount of ozone, the alcohol yield drops to 0.35 g per 100 g of wood. - To determine how the 03- action on sulphite Am working the following experiment was recognized. 40 g sulphite of 9.5% water content were wetted with 150 cc of water and exposed for one hour a stream of ozone of 1.81% Os, at a water temperature of 39 °. Then the sulphite cellulose was boiled for one hour at 155-160 ° with 300 cc of 3% sulfuric acid. The fermentation yielded so little alcohol that to 100 g dry sulphite calculated 1:42 g alcohol. The ozone thus acts harmful even at Sulfitcellulosekochung. Summary of the results obtained. In the comparative experiments on the saccharification of cellulose raw materials, the wood, the oxygen and the specified sulphite of Simonsen yield of 6 g of alcohol, 100 g of dry wood has been confirmed by two tests. The largest yield of alcohol resulted in the percentage of the highest cellulose content owning sulphite with an average of 12.83 g alcohol 100 g starting material. This is twice the amount of the receivable from wood alcohol. Since the wood contains approximately 50% cellulose, which seems an unmistakable evidence that the resulting sugar originates from the cellulose and lignin not as assumed ayen P, and it is believed still often today. The additions of sulfur dioxide proved contrary to what the patents of C1 ate - Aachen, when the saccharification hindrance; not even in a single attempts satisfactory results were obtained. The addition of oxidizing agents to the inclusions reduced in most cases, the formation of sugar; could stoffsuperoxyd only the addition of water has a higher yield can be achieved; when a wood to 50% of otherwise receivable amount of alcohol amount end gain. For this result, one can conclude that weak Oxidant convert the cellulose into one of the saccharification more oblique connection. Since the yield of alcohol from hydrocellulose reached the maximum value of 17.95%, so the conclusion is obvious that daa peroxide converts the cellulose in hydrocellulose, and this is due to the greater Zuekerbildung. The other applied Oxydationszusätze how the potassium dichromate, potassium persulfate and the ozone, are powerful agents; they oxidize the cellulose on the hydrocellulose away to other substances. The product covered by the patent from Dr. Roth and Gentzen addition of ozone resulted in the complete opposite of the set up there assertion by ozone addition resulted in a reduction of fermentable sugars. The decrease in yield was carried out fairly proportional to the supplied amounts of ozone. In general, therefore, the yield of alcohol by hydrolysis of wood is quite low, considering that theoretically 100 g Cellulose 56.91 g alcohol may arise; because even at best, no more than 25% of the calculated amount of alcohol has been achieved in a simple hydrolysis. It is therefore natural to assume that from the cellulose complex (CgHi0Os) x split only a part and in fermentable sugars can be converted. === 1909 === ====Scientific American Supplement No. 1736. April 10, 7909 ==== PRODUCTION OF ALCOHOL FROM CELLULOSE.<BR> HOW WOOD AND WOOD PRODUCTS MAY BE EMPLOYED.<BR> BY TH. KOERNER.<BR> The idea of obtaining alcohol from wood is not new. In 1819 Braconnot published a method of converting woody fiber into fermentable sugar. The wood was first treated with cold concentrated sulphuric acid, which caused a great elevation of temperature and an evolution of sulphur dioxide. Water was then added, the mixture was filtered and the filtrate was neutralized with chalk. A gummy mass was thus precipitated which was converted into fermentable sugar by the action of dilute sulphuric acid. In the following year Vogel repeated Braconnot's experiments and extended them to paper, cotton, straw and cork. In 1854 Arnould claimed to have converted from 80 to 90 per cent of wood into soluble products by treating it with rather more than its own weight of strong sulphuric acid. In 1855 Melsens substituted treatment with weak acid (3 to 5 per cent) in a digester at temperatures up to 350 deg. F. A factory for the production of alcohol from wood was started in Paris in 1855, but it does not appear to have existed many years. In Geneva, some years later, an attempt was made to produce alcohol, on a commercial scale, from residues of wood left in paper making. In 1867 Payen claimed to have obtained alcohol from the lignin contained in the wastes of the manufacture of paper, and Matthews claimed to have obtained fermentable dextrose from peat. In 1894 the Norwegian chemist Simonsen patented, in Germany, a process for the rapid saccharification of substances containing cellulose by treatment with weak acids (4/10 to 8/10 per cent) under a pressure of 7 atmospheres or more. The process occupied from 10 to 30 minutes. A kilogramme of wood yielded 60 grammes of alcohol—that is to say, the yield was 6 per cent, which was very small in comparison with earlier claims. In 1898 Simonsen published the results of experiments on the influence of pressure, time, and the quantities of water and acid employed in the inversion of substances containing cellulose. From sulphite-cellulose he obtained 45 per cent of sugar, which he regarded as the maximum yield, because part of the sugar formed is destroyed by the heat of the reaction. He estimated the sugar by Fehling's method and assumed, after a single test, that all of it was fermentable. With sawdust he obtained the best yield by heating the sawdust 15 minutes with five times its weight of V- per cent sulphuric acid, under a pressure of 9 atmospheres, but few experiments in fermenting the sugar gave positive results. The highest yield of absolute alcohol was about 5 per cent of the weight of sawdust. Simonsen concluded that wood could be inverted more easily than pure cellulose, but that all sugar came from the cellulose of the wood. In 1899 Classen patented a process in which saw dust, is mixed with sulphuric acid of 57 deg. Baume and subjected to great pressure. The pressed mass is then broken up and boiled with water. In other patents of the same year he claimed the employment of sulphurous acid, alone or In conjunction with sulphuric acid, or with chlorine, air, or oxygen. In the following year he patented the treatment of wood with vapor of sulphuric anhydride. In 1901 Gentzen and Roth patented the employment of ozone for the purpose of converting lignin into fermentable sugar and destroying substances which prevent fermentation. The patentees claimed to have obtained from 34 to 40 per cent of dextrose from pine and fir wood. They used 3 or 4 per cent sulphuric or hydrochloric acid under a pressure of 20 atmospheres. The process occupied from 10 to 30 minutes. In 1904 Reiferscheidt reviewed the subject experimentally and concluded, with Simonsen, that the cellulose of wood is the sole source of sugar and that the presence of lignin rather obstructs the process of saccharification. In experimenting with Classen's processes he obtained the best result by treating the material one hour with 9 per cent sulphurous acid at a pressure of 4 or 5 atmospheres and a temperature of nearly 300 deg. F. In 1905 Boernen obtained an English patent for a process employing 5 per cent solutions of caustic alkalies at about 90 deg. P., and boiling the liquid after the unaffected residue of the wood has been removed by filtration. It appears from this historical sketch that the estimates of the yield of sugar and alcohol differ very greatly. The oldest estimates are the highest. Braconnot claimed to have obtained from lignin more than an equal weight of sugar, and Arnould made a similar claim in regard to wood. Often the yield is given simply as "very large." The later claims include alcohol and also become more modest until, in 1898, Simonsen obtains only 6 per cent of alcohol, a result confirmed by Reiferscheidt in 1904, and also by my own experiments. In general, I operated as follows: Sawdust, sulphite cellulose, or straw was digested for a longer or shorter time with dilute or concentrated sulphuric acid, with or without other reagents. The digester was of copper, lined with lead, and held about two quarts. It was heated on a water bath or by a Bunsen flame which was not in contact with it. The acid solution obtained by this process was filtered. The color of the filtrate was red, orange or brown, and was darkened by the addition of alkalies. In the first experiments the sugar was calculated from the weight of cuprous oxide produced by treating the liquid with Fehling's solution, but I soon discovered that the amount of alcohol which corresponded to the quantity of sugar thus found did not always agree with the amount of alcohol obtained by actual fermentation and distillation. In some cases, the difference was less and in others much greater than the unavoidable loss in distillation (which is from 10 to 20 per cent), as appears from the following table: , Percentage, of Alcohol . Raw Material. Reagent and Calculated Obtained 1> Process. from Cuprous Distillation. Oxide. Sawdust. % per cent sulphuric acid 5.2 5.2 Sawdust. y2 per cent after steam ing 7.4 6.8 Sulphite cellulose. % per cent, with 2 per cent 4iydrogen di oxide 16.1 14.6 Straw. V-j per cent, with 2 per cent hydrogen dioxide 8.5 8.4 Sawdust. % per cent, with sul phurous acid 2.4 1.7 Sawdust. '/_. per cent, with sul phurous acid 9.6 5.5 Sulphite cellulose. % per cent at 8 atmospheres 10.9 8.4 Straw. % per cent "8.5 5.4 The great difference between the calculated and the real percentage of alcohol in the last four experiments is due to the presence of reducing substances, other than sugar. In another experiment, in which the calculated percentage of alcohol was 7.7 and the real percentage only 2.1, the presence of a large quantity of furfurol was discovered. Simonsen also detected furfurol by its odor. For these reasons the quantity of alcohol was always determined directly. Part of the filtrate from the digester was neutralized with chalk, again filtered, acidified with a few drops of phosphoric acid and fermented with yeast for two or three days at about 80 deg. F. The fermented liquid was freed from yeast and distilled after a little tannin had been added. When a third of the liquid had passed over the operation was stopped and the distillate was mixed with a little chalk for the purpose of neutralizing any acetic acid that might have been formed, and redistilled one or more times, according to its strength. The specific gravity of the final product was always measured at the same temperature, with the pyknometer. A series of experiments was made In order to determine whether sugar can be obtained from lignin as well as from cellulose. Simonsen's experiments appeared to prove that the sugar was derived entirely from the cellulose, as be obtained 45 per cent of sugar from pure cellulose but only 20 per cent from wood containing 50 per cent of cellulose. But he estimated the sugar by Fehling's method which, as we have seen, is unreliable. Hence I made comparative experiments with equal quantities of sawdust, sulphite cellulose and straw, digesting each with about twelve times Its weight of per cent sulphuric acid at a pressure of 6 or 8 atmospheres for 2 hours, and then fermenting and distilling as described above. The percentages of alcohol obtained were: From From sawdust. sulphite cellulose. From straw s' 13.7 9.6 6.8 12.0 Mean 6.0 12.8 9.6 The yield from cellulose was about twice that from sawdust. Assuming that the sawdust was half cellulose, this result confirms the theory that all of the sugar is derived from the cellulose and none from the lignin of the sawdust. In order to attain certainty on this point the cellulose content of wood and of sulphite cellulose was determined by the method of Fremy and Terrell. The wood (or sulphite cellulose) was steeped in chlorine water for 36 hours and then boiled with potash, which dissolved most of the other ingredients, leaving a residue of nearly pure cellulose, which was washed with dilute acid, dried, weighed on a platinum dish, and incinerated. The dish and ash were then weighed. The difference between the two weights was taken as the weight of cellulose. Two specimens of dry wood thus yielded 49.8 and 48.3 per cent of cellulose, while two specimens of sulphite cellulose yielded 83.6 and 79.7 percent of pure cellulose. The cellulose content of straw was determined by the method of Henneberg and Wender. Two specimens yielded 69.2 and 68.7 per cent of cellulose. The mean percentages of cellulose and alcohol are approximately proportional, as shown below: Cellulose. Alcohol. Wood 49.0 6.0 Sulphite cellulose 81.6 12.8 Straw 68.9 9.6 Two experiments were made to determine the effect of sulphurous acid. Sawdust was digested, first with 2 per cent sulphurous acid, and then with \i, per cent sulphuric acid. 4.2 and 5.5 per . cent of alcohol were obtained. As sawdust digested with sulphuric acid alone yielded 6 per cent of alcohol, the preliminary treatment with sulphurous acid is worse than useless. The substance known as hydrocellulose, which may be represented by the formula C,.H= O,,. may be regarded as formed by the combination of two molecules of cellulose (assuming the simplest possible formula for the latter) with one molecule of water: 2C6H10O5 + H20 = C12H22. As hydrocellulose (like cane sugar, which has the same empirical formula) stands midway between cellulose C6H10O5 and glucose C6H12O6 which differ by a whole molecule of water (H2O), it appeared likely that sugar could be obtained more readily from hydrocellulose than from cellulose. I digested hydrocellulose (prepared by Ulzer's method) with 12 times its weight of % per cent sulphuric acid at about 315 deg. F. for three hours, and obtained, by fermentation and distillation, 18.0 per cent of alcohol. This is by far the highest yield obtained from any material, as appears from the following table of mean results : Per Cent of Alcohol. Wood yielded CO Straw yielded 9.6 Sulphite cellulose yielded 12.8 Hydrocellulose yielded 18.0 I then attempted to produce hydrocellulose or similar compounds by oxidizing wood, etc., during the process of saccharification, although the alcohol yielded by hydrocellulose itself was found to be diminished from 18 to 11 per cent by the addition of hydrogen dioxide, and to 4 per cent by the addition of chromic acid. Equal quantities of sawdust, sulphite cellulose, and straw were digested 3 hours at about 8 atmospheres and 328 deg F with water containing 2 per cent of hydrogen dioxide and 1/2 per cent of sulphuric acid. The percentages of alcohol compare as follows with those obtained with sulphuric acid alone: Without Hydrogen With Hydrogen Dioxide. Dioxide. Wood 6.0 9.9 Sulphite cellulose 12.8 14.6 Straw 9.6 10.3 Hence it appears that hydrogen dioxide increases the yield of alcohol, especially from wood. In another series of experiments the hydrogen dioxide was replaced by an equivalent quantity of potassium bichromate, the injurious action of the chromium compounds on the yeast being prevented by precipitation with lime before fermentation. The addition of the bichromate greatly diminishes the yield of alcohol in all cases, as appears from the following table: Without With Bichromate. Bichromate. Wood 6.0 3.2 Sulphite cellulose 12.8 2.3 Straw 9.6 3.2 In another series an equivalent amount of potassium persulphate was substituted for the bichromate, with similar results: Without With Persulphate. Persulphate.. Wood 6.0 4.2 Sulphite cellulose 12.8 7.3 Straw 9.6 2.6 Roth and Gentzen In the application for their patent covering the employment of ozone in the saccharifleation of sawdust assert that ozone not only promotes fermentation but also converts lignin into sugar. They also assert that the substances associated with cellulose in wood are very similar to carbohydrates, but although the sulphite liquor of cellulose factories employing the sulphite process contains a great deal of lignin Lindsey could obtain from it only small quantities of levulinic acid, the production of which, according to Wehner, is a certain proof of the presence of carbohydrates. I treated sawdust with increasing quantities of ozone and then digested it with 3 per cent sulphuric acid (the strength recommended in the patent). The alcohol obtained decreased steadily from 6.6 per cent to 1/3 per cent, the decrease being nearly proportional to the quantity of ozone employed. Similar results were obtained with sulphite cellulose. SUMMARY. For wood my results agree with those of Simonsen and give a yield of absolute alcohol equal to 6 per cent of the weight of dry wood. Sulphite cellulose contains about twice as much pure cellulose as dry wood contains, and yields about twice as much alcohol. This proves that the sugar which is converted into alcohol is derived from cellulose and not at all from lignin. The addition of sulphurous acid, recommended by Classen, diminishes the yield of alcohol in all cases. The yield of alcohol is increased by hydrogen dioxide but diminished by stronger oxidizing agents. These results suggest that hydrogen dioxide converts the cellulose into hydrocellulose, which I found to yield a very high percentage of alcohol, but that the stronger agents oxidize the cellulose to a higher stage, producing non-saccharifiable compounds. The employment of ozone recommended by Roth and Gentzen diminishes the yield of alcohol in proportion to the quantity of ozone used. The actual yield of alcohol from wood, 6 per cent, Is less than one-quarter of the theoretical yield, for wood is nearly half cellulose, and cellulose, theoretically, should yield 56.91 per cent of alcohol. This great disparity suggests the hypothesis that a portion of the complex cellulose molecule (C„H,„On), is split off and converted into sugar. Condensed from Zeitschrift fuer Angewandte Chemie === 1910 === ==== SCIENTIFIC AMERICAN SUPPLEMENT No. 1789. APRIL 16, 1910. ==== ALCOHOL FROM"WOOD WASTE.*<BR> ITS CHEMISTRY AND PROCESSES.<BR> BY PROF. R. F. RUTTAN, M. D. The action of the zymase of yeast upon glucose and certain other fermentable sugars is the one source of the ethyl alcohol of commerce. It therefore follows that the problem of how to produce ethyl alcohol in a more economic manner can only be solved by finding a new and cheaper method of obtaining solutions of fermentable sugars. The fermentable sugars employed in the preparation of alcohol have been derived hitherto from a number of sources, which may be generally stated to be (1) the products of the hydrolysis of starch and allied substances by means of an amylase; (2) solutions of sugar obtained directly from fruits, etc., and the noncrystallizable by-products of sugar works, etc. The cost of alcohol from these sources is much too great to enable it to compete with other products in many fields where it could be used to great advantage. This is due, not so much to the cost of manufacture as to the cost of the raw material from which the fermentable sugar is obtained. The most economical source of starch on this continent is Indian corn, yet this raw material costs at present $21.60 per ton. One ton of corn gives about 90 gallons of alcohol of 94 per cent at a cost of 24 cents per gallon for raw material. About two gallons of raw molasses produce 1 gallon of 94 per cent alcohol, and this raw material costs 21—22 cents. The raw material of German alcohol has been estimated to cost 20 to 21 cents per gallon of alcohol of this strength. There is a process in which a waste product of nominal commercial value is the raw material from which fermentable sugars can be obtained. The actual cost of sawdust and other wood waste to any industry is difficult to estimate. In some localities, where the quantity of waste is not great, a local market for it has been established, and in most forms it has been disposed of at a small profit. The larger mills, now that electricity is of such general application, have in many cases increased their power and find an economic outlet for all forms of wood waste as fuel for generating this power. There remains, however, the great majority of the large sawmills of this continent where the wood waste has either to be disposed of by sawdust burners at a cost of about 20 cents per ton, or allowed to accumulate in heaps upon the land, or is turned into an adjoining stream to be a nuisance and an injury for many years, if not for generations. Any industry employing wood waste situated in the vicinity of a large mill of the ‘last-mentioned class, should be able to obtain waste for the cost of transportation and handling which under moderately favorable conditions should not exceed 30—50 cents per ton As I shall later explain, one ton of sawdust or other comminuted wood waste calculated to a dry basis can be made to yield about 20 gallons of alcohol of 94 per cent. This then reduces the cost of raw material from 20—24 cents to 2 or 2%» cents per gallon of alcohol. That fermentable sugar can be produced from wood has been known to chemists for nearly a century. Braconnot as early as 1819, by heating wood cellulose with sulphuric acid, produced a pulp which contained glucose. The sulphuric acid, however, could not be economically removed. Since then no process has been devised until quite recently for hydrolyzing cellulose and ‘allied bodies economically. Numerous attempts have been made to solve this problem and the list of patents on the subject is a large one. Prior to 1900, when the Classen patents were taken out, the hydrolyzing effect of many acids on starch and the celluloses had been studied and the process patented. C. Pope, for instance, in 1898 obtained a patent for hydrolyzing starch and obtaining fermentable sugar by sulphuric acid, and Einar Simonsen in 1898 a patent to make sugar glucose from sawdust by the action of dilute sulphuric acid. Sulphurous acid had long been used to make wood pulp from comminuted wood before these patents; it was also well known that when sulphurous acid was heated with wood, sulphuric acid was always formed which took part in the reaction, and its action was prevented in pulp-making by the use of calcium bisulphite, the sulphuric acid combining with the calcium as it was produced. Dr. Alexander Classen of the Polytechnic School of Aachen, stated in 1900 that sulphurous acid in aqueous solution under pressure converted the cellulose of wood into glucose and that the product could be fermented in the usual way yielding ethyl alcohol. He patented this process all over the world, but the original methods as stated in the patent proved to be crude and unworkable. The claim is as follows: “The process of converting cellulose into sugar, which consists in heating the cellulose in a closed vessel at a temperature of 120 deg—145 deg. C. with a solution of sulphurous and sulphuric acids substantially as described." After successful experiments in a test plant erected by Classen in Aachen, a similar plant on a larger scale was erected at Highland Park near Chicago, to demonstrate to American capitalists its possibilities. The results were so satisfactory that a. larger plant on a commercial scale was erected at Hattiesburg, Miss. The plant included the following elements: 1. An acid apparatus where the solution of sulphurous acid was prepared and where the excess of sulphur dioxide after use could be re-absorbed and saved for further utilization. 2. A revolving cylinder. 30 feet long, and about 36 inches in diameter, which formed the converter or digester. 3. An exhausting battery consisting of a series of tanks in which the sugar was washed from the partly converted sawdust by hot water. 4. Neutralizing vats in which the various acids remaining in the saccharine liquid were neutralized by calcium carbonate. 5. Fermentation vats, and a still, where the process was completed as in an ordinary distillery. The wood waste was introduced into the digester (which it nearly, but not completely filled), made of iron lined with lead to prevent action of the sulphuric acid, and surrounded by a steam jacket by which it was heated. This revolving cylinder had a capacity of about two tons. To the charge of wood waste was added a weight of a nearly saturated solution of sulphur dioxide corresponding to about one-third of the raw material. The drum was closed air-tight and steam turned into the jacket while the whole slowly revolved. The temperature of the interior was thus slowly raised to 290 deg—300 deg. F., and the pressure to about one hundred pounds. After from four to six hours the sulphurous acid and steam were blown off into the absorbing tanks and the sulphur dioxide thus partially recovered. The cover was removed and the contents emptied looking then very like finely ground coffee. This finely divided, treated wood was conveyed to the exhaustion batteries and the sugar extracted. The liquid obtained, contained from 350—400 pounds of sugar for each ton of raw material treated. The next steps were to neutralize the acid liquid, allow it to clear by subsidence, pump it into the fermentation vats, ferment it by yeast and distill the product in the usual way. It was claimed for the process that each ton of wood waste gave about 18—20 gallons of absolute alcohol. The history of the original Classen process is an excellent example of how a process which will give very good results on a laboratory scale, will just fall to succeed when magnified to a size necessary for working on a commercial basis. Even the strongest supporters of the original Classen process do not now believe it to be a success as a money-making proposition. The difficulties in the way to sucess for this process are explained to be: (1) The length of time necessary to convert 11,1, to 2 tons of wood. this requiring from four to six hours; (2) the quantity of acid required; (3) the prolonged action of so much acid and water in the rotating converter reduced the wood to a very fine powder and formed much sulphuric acid which, acting on the sugar and other substances, produced gums and caramels, and so made the complete extraction of the sugar from the residue very tedious and expensive. (4) The buckling and breaking of the lead lining of the converter which had to be repaired after every two or three operations, and proved a very great source of delay and expense. The plant built in the United States, which is reported to have cost for building and working for a year about $250,000, has not been used for some time. Two chemical engineers, Malcolm F. Ewen and G. H. Tomlinson, who were associated with the Classen process, both in Germany and the United States, finding the original process unlikely to prove a commercial success, obtained substantial financial aid from a Chicago engineer, Mr. J. M. Ewen, and in 1904 began experimenting along new lines to overcome the difficulties which prevented the old process from being a success. The result of their researches and experiments has been to shorten the time of the hydrolysis in the converter from six hours to 40 or 45 minutes, to obtain the treated wood waste in a form which could be quickly and efficiently extracted, to devise a converter which is not in the least degree affected by the process, to reduce the quantity of acid employed, and to obtain a very uniform and large yield of fermentable sugar from wood waste. This process, by the courtesy of the patentees, l was enabled to study in June, 1909, at Chicago Heights, about 20 miles from the city of Chicago. The plant was erected by the Wood Waste Products Company. now called the Standard Alcohol Company, which has control of the Ewen-Tomlinson patents. This experimental plant was composed of units of commercial capacity, and was set up in workshops in the grounds of a large machinery manufactory. It consisted of the same elements as those required for the older process, viz., the acid generating and recovery apparatus, a converter or digester, a battery of diffusion cells to extract the sugar, neutralizing and storage tanks, fermentation vats, and a distillery. The converter in use at Chicago was a revolving cylinder, 12 feet by 8, of steel, lined with fire-brick, and set in cement of lead oxide and glycerin. it had a capacity of about two tons of shavings or three of sawdust. The wood waste, sawdust, shavings, or small chips, are dumped into the converter, which is completely filled, and is then closed air tight. Gaseous sulphur dioxide in measured quantity, only about 1 per cent by weight of the dry wood, is introduced through a perforated tube passing through the trunnions of the cylinder and thus through the center bf the revolving mass of the sawdust. When the required quantity has been added the sulphur dioxide is turned oil and live steam is introduced through the same tube till a pressure of about 100 pounds is reached. It takes from 10 to 15 minutes to get the contents of the digester heated up to the required temperature. ‘The steam is then cut off and the digester revolves slowly for another 40 to 45 minutes, the temperature and pressure being kept constant, when the hydrolysis is complete. The steam, carrying with it the terpenes, the excess of sulphur dioxide and some acetic acid, is then discharged into the absorption tank. The manhole is again opened and the coffee-colored chips and sawdust discharged into a V shaped bin which supplies the conveyors going to the diffusion cells. In the plant now being built for the Du Pont Powder Company at Georgetown, S. C., it is probable that there will be three or four converters, egg-shaped or spherical, and capable of taking four to five tons at one charge. These are to be so arranged that when the digestion in one is completed the steam and acid may be directly discharged into a second digester already filled with wood waste, thus saving time and expense in recovering the acid of each charge. From the converter the treated wood is conveyed to the extraction battery, where it is rapidly and effectively exhausted by hot water, the acid liquid neutralized with slaked lime and carbonate, allowed to settle in the settling tank, and then pumped to the distillery, fermented and distilled. in the tests that I made of the plant two charges of the converter were used. The first contained 3,623 pounds of shavings from Chicago mills, air dry and almost entirely pine. This carried 18.61 per cent of moisture, making the dry wood equivalent to 2948.8 pounds. The second charge consisted of 2,992 pounds of shavings and 2,105 pounds of wet hardwood sawdust, consisting chiefly of oak, but with some pine. The total weight of the second charge was 5,097 pounds, with a dry wood equivalent to 3,058 pounds. This second charge was made with a view of testing the effect of the process on sawdust carrying a very high percentage of moisture. The sawdust gave on analysis 70.4 per cent moisture. The product of the action of steam and sulphur dioxide on the first charge of shavings was a friable‘ brown product resembling tan bark or coffee, with a fragrant aromatic odor and strongly acid. Analysis of this gave: Per cent. Moisture . . . . . . . . . . . . . . . . . . .......32.23<BR> Total reducing sugars . . . . . . . . . . . . . . . . . . 13.70<BR> Calculated to dry basis . . . . . . . . . . . . . . . . . . . . . . . 20.20<BR> Total acidity (as sulphuric acid, SO.) . . . . . . 1.23<BR> Sulphuric acid (80,) . . . . . . . . . . . . . . . . . . . . . . . . 0.418<BR> Reducing sugars. fermented . . . . . . . . . . . . . . . . 10.70<BR> Unfermented sugars; xylose, etc . . . . . . . . . . . . . . . 3.00<BR> The wood waste in the second charge after treatment resembled the heated shavings, but was liner and had a powerful aromatic odor and gave the following results: Moisture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 34.63<BR> Total reducing sugars . . . . . . . . . . . . . . . . . . . . . .. 14.28<BR> Calculated to dry basis . . . . . . . . . . . . . . . . . . . . . .. 24.18<BR> Total acidity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.12<BR> Sulphuric acid . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 0.353<BR> Reducing sugars, fermented . . . . . . . . . . . . . . .. 10.97<BR> Non-fermented matter, xylose, etc . . . . . . . . . . .. 3.21<BR> The total weight of waste wood in the form of saw dust and shavings in these two charges was 8,760 pounds. or calculated to a dry basis, 6,007.1 pounds. The treated wood was then exhausted with hot water in the extraction battery. The liquid containing the sugar from these two charges was collected in one storage tank and occupied a volume of 2,984 gallons, or 26, 150 pounds in weight. The mingled liquors contained 5.6 per cent of reducing sugars calculated to dextrose. The total acidity was 0.64 per cent calculated to sulphuric acid. of this 0.21 per cent was sulphuric acid and-the balance was composed of acetic acid, a little sulphurous acid, and aromatic compounds of the type of pyrogallol. The presence of the polyphenols and tannin bodies was most obvious. On neutralizing this solution with lime and calcium carbonate it. blackened rapidly, and when ready for fermentation had an inky color due to the oxidation of the aromatic salts. The liquid also contained a considerable amount of furfurol. As there is little or no nitrogenous material suitable for yeast food in the liquor it does not ferment well alone. hence before adding the yeast about half a bushel of malt sprouts was added to a vat of 3,000 gallons as food for the yeast. In this experimental plant various forms of yeast have been tried. The problem as to which particular breed of yeast will give the best results was, in June last, still unsolved. The yeast used in my experiment was brewers’ yeast from a neighboring lager beer brewery, which was found to give constant and regular fermentations, but not more than 75 or 80 per cent of the theoretical yield of alcohol was obtained. The fermentation occupied about three days, when the liquid was handed over to the gager and distiller, who was an employee of the United States Government, and placed in charge oi’ the distillery. From the 2,984 gallons of fermented fluid, corresponding to 6,007.1 pounds of dry wood the gager reported 115.92 gallons of proof spirit or 61.06 gallons of 95 per cent alcohol. This will be seen to be equivalent to 20.55 gallons per ton of wood waste calculated to a dry basis, or 14.14 gallons per ton of wood waste, including the wet sawdust, which contained over 70 per cent of moisture. This alcohol when rectified to 94 per cent is of a potable spirit, crystal white, and carries no trace of odor or flavor of wood. It contains no trace of methyl alcohol or of the higher alcohols such as fusel oil, but gives the reaction for traces of furfurol and aldehyde. At present there has been little or nothing done toward utilizing or indeed determining the quantity and value of the by-products resulting from the manufacture of ethyl alcohol by this process. The Standard Alcohol Company has contented itself with manufacturing a very cheap and pure ethyl alcohol and has left the working out of the by-products to the future. The wood waste left behind after complete extraction is a friable cellulose and represents about 65 per cent of the original wood. of which only about one-third is rendered soluble and extracted by the process. This material, according to the present plan, is to be squeezed between rollers, dried partly by waste heat from the boilers and used as fuel. Turpentine and acetic acid are found in the absorption tanks after blowing in the steam from the converter and will no doubt be recovered. In France there is in operation another process for the manufacture of ethyl alcohol from wood waste. I know nothing of this process beyond an account of it which appeared in the General Electric Review of September, 1909, by G. U. Borde. The claims for this process are interesting and extraordinary. Finding the Classen process unworkable on a commercial scale, the company that controlled those patents for France is reported to have so modified the process as to largely increase the value of the by-products, chiefly the acetic acid and the solid tailings, and can still produce about 20 gallons of alcohol per ton. The raw material is treated in a Classen converter with a solution of sulphurous acid at a pressure of 100 pounds. Neither the time required —a most important item— nor the form of the converter, nor yet the quantity of acid used, are stated in the report. From the profound change effected in the character of the wood, however, the process must be greatly prolonged and the sulphuric acid formed given ample opportunity to attack the cellulose. The digested mass is allowed to partly cool in the digester when it is found to have shrunken about 25 per cent. The sulphurous acid is recovered and the material from the digester passed over to a separator in which the acetic acid is recovered by vaporizing it with steam. The whole mass, without any attempt at separating the sugar, is then neutralized, made into a mash, which is fermented and distilled in the same way as an ordinary grain mash is handled in a whisky distillery. The tailings from the still are compressed and dried as in the previous process by waste gases from the boilers. This material is claimed to be useful as a stock food, or can he briquetted or mixed with magnesla to form artificial stone of value. In an experiment conducted by the writer I am quoting, be obtained from 3,200 pounds of refuse wood, 211,4, gallons of 94 per cent alcohol, 76 pounds of acetic acid and 1,800 pounds of stock food. The value of this he estimates as follows: Alcohol at 40 cents per gallon . . . . . . . . . . . . . . . . . . $8.60<BR> Acetic acid at 6 cents per pound . . . . . . . . . . . . . .. 4.56<BR> Stock food at $23 per ton . . . . . . . . . . . . . . . . . . . . .. 17.25<BR> $30.41<BR> Estimated cost of production . . . . . . . . . . . . . . . . .. $7.00<BR> Net profit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 23.41<BR> $30.41<BR> If this be a true estimate of the value of the products obtained from a ton and a half of sawdust. it is much more profitable than the process 1 have reported upon. The ethyl alcohol produced according to the above is of secondary importance both commercially and economically to the manufacture from sawdust of a foodstuff for stock of greater value than Indian corn. The description of the process does not convince one that the inherent difficulties of the Classen process have been removed. The exaggerated value placed upon the stock food is obvious. There is no reason, however, why a. prolonged digestion of wood at a high temperature should not greatly increase the yield of acetic acid and might produce a substance from cellulose by the hydrolyzing effect of sulphuric acid which might have a food value, but necessarily a very low one after the extraction of the sugar. It is known that the partial hydrolysis of keratin (horn, hoof, hair, etc.) renders such substances digestible. If the process be carried so far as this, however, it seems very probable that the sulphuric acid formed would destroy much of the sugar and thus lower greatly the yield of alcohol. In the Ewen-Tomlinson process which I have studied, it was found that the more rapidly the contents of the digester could be raised to the required temperature the shorter was the time required to produce the maximum yield of sugar. A gradual elevation of temperature. as occurs in the Classen process, induces secondary reactions and a lower yield of fermentable sugar. This rapid heating of the contents of the converter is only possible by the Ewen-Tomlinson method of introducing live steam into the interior of the mass by the perforated tube in the axis of the converter. All will watch with interest the development of these two offsprings of the Classen process in America. A plant is being erected to use this French process at Hadlock, Wash., and another is proposed for some place in Ontario. As to the cost of production of ethyl alcohol by the Ewen-Tomlinson process, a very close estimate has been made, based upon tenders and the experience of the patentees in the Classen plant. Broadly speaking, the cost is about the same as that required to produce alcohol from grain or any other starchy material. Outside the converter itself there is nothing used in the plant which is not quoted on the market and made for other purposes. Without going into details, a plant capable of handling 100 tons of dry sawdust in a ten-hour day, or working continuously, 200 tons per day, including buildings of a simple character and of cheap substantial construction. was estimated at $99. 500. The daily cost of maintenance, including interest, depreciation, labor, and material, allowing 50 cents per ton for the sawdust or other wood waste, would amount to $217, i. e., $217 for 100 tons, or $2.17 for 20 gallons of alcohol, 90 per cent, or a net cost of 10.8 cents per gallon. No allowance is here made for fuel, save the cost of drying the unused portion of the saw dust. This estimate further is made on a plant not smaller than 100 tons. When one considers the possible value of the by products from a large plant, and the fact that quite 20 per cent of the available sugar was not fermented in the experiments made last June, it would appear that cheap industrial alcohol has at last arrived.* Ethyl alcohol from grain. 94 per cent, averages about 52 cents to the consumer without the government tax, and denatured alcohol from 45 to 60 cents. Alcohol made from refuse wood should not cost the consumer more than 20 to 25 cents. Quite apart from its economic aspect, the manufacture of fermentable sugar from wood by this process is intensely interesting to the chemist. The process is essentially one of hydrolysis analogous to the conversion of starch to sugar by the amylolytic ferments. The celluloses are, like starch, polysaccharides of unknown constitution. They are generally represented as having the same percentage composition and empirical formulae, and just as we can represent the hydrolysis of starch to maltose and dextrose, so we can show how by the assimilation of water the cellulose can give rise to maltose and dextrose. It is assumed that it is the cellulose element in the wood which gives rise to the sugar. I was much struck by the regular action of sulphurous acid upon the sawdust. a constant quantity, about 35 to 40 per cent of the wood, only being attacked. We know from the studies of numerous chemists, such as Hugo Muller. Sachs, Cross and Bevan, and others, that wood freed from adventitious constituents such as the tannins, coloring matters, resins, etc., is strikingly uniform in the composition of its fundamental tissues. notwithstanding the great variety in structural complexity, and this uniformity in composition is not confined to species, but is found to embrace all sorts and varieties of woody tissue. The average composition of wood from all sources may be said to be, water, 11 per cent; cellulose, 50 per cent; soluble in water, 3.5 per cent; non»cellulose, 35.5 per cent. Lignum vitae and ebony are exceptions, being very low in cellulose and high in non-cellulose. In the Classen patents and in one of the Ewen-Tomlinson patents it is the cellulose which is claimed to be converted into fermentable sugars. It seems more than a coincidence that the quantity of material hydrolyzed in the Ewen-Tomlinson process should be so constant and should correspond so closely to the proportion of non-cellulose found in woods. in all processes of hydrolysis the non-cellulose or lignose complex>is the first to break down whether the hydrolysis occurs in an acid or an alkaline medium. There is every evidence that here the lignone complex is broken down. The presence of hydroxy-derivatives of benzene. of pentoses, acetic acid, and furfurol in quantity is obvious in the liquid extract of the treated wood. it seems probable that the lignone complex in woods is attached to a certain proportion of cell cellulose (hemi-cellulose) as well as to the oxy-cellulose and perhaps to the true fiber cellulose. The material left after treatment consists of cellulose, which is found on being again submitted to steam and sulphur dioxide to yield but a trace of, sugar. True fibrous cellulose (absorbent cotton) in another experiment remained unattacked. Its physical as well as its chemical properties were practically unchanged. Under the conditions of the process a small quantity of sulphurous acid is employed for a short time only, and very little sulphuric acid is formed. It would seem that the acid acts here as a catalyzer inducing a rapid hydrolysis of the lignone complex and of a proportion of easily attacked cellulose. The oxy-cellulose for the most part and the true cellulose present are not seriously altered chemically. It would seem possible that, authorities to the contrary notwithstanding, the lignone complex is capable of yielding a certain amount of fermentable sugar. Should this, on further study, prove to be the case, it might be possible to treat pulp wood by this process as a preliminary to its conversion into pulp, and then by a second treatment to produce pulp fiber from the unattacked residue. There is little doubt that in the original Classen process there was, owing to the larger proportion of acid and the prolonged action, a more profound action on the cellulose and the lignone complex, as well as probably a secondary action on the carbohydrates produced. In a lumber producing country like Canada. any industry that can utilize waste wood and give it commercial value should receive encouragement. If this be the “revolutionary discovery," which the Department’ of Agriculture at Washington has pronounced it to be, it will add much to the wealth of nations. it will not only open up new fields for the use of industrial alcohol, but will liberate for use as food the million bushels of grain now used in the manufacture of ethyl alcohol, 9 per cent of which is used as a luxury in life and regarded by many as a distinct evil in the community. * Read before the Society of Chemical Industry, and published in its journal. + Tenders have been offered to deliver, two hundred yards away, 200 tons of sawdust. etc., per day at twenty-five cents per ton. ' The Standard Alcohol Company claims to be able to produce this alcohol at a cost of seven cents per gallon in a large plant. Its plant has been described in the SCIENTIFIC AMERICAN === 1912 === ==== SCIENTIFIC AMERICAN SUPPLEMENT September 14, 1912 ==== This is a excerpt from the article. The first part of the article has the historical information. The rest of the article describes the experiments. Some Experiments on the Hydrolysis of Sawdust*<BR> Sugar and Alcohol from Wood<BR> By Wallace P. Cohoe<BR> The effect of acids upon cellulosic materials has engaged the attention of chemists since the time of Bracconet in 1819. Simonsen was the first to attempt the manufacture of sugar from sawdust on any large scale. He used both sulphuric and hydrochloric acids of from 0.3 to 0.7 per cent strength in quantity under a pressure of seven to eight atmospheres. In Classen's process fairly dry sawdust was treated with 2}4 to 3 per cent of sulphurous acid, the amount of moisture present usually equalling the weight of dry sawdust. The digester was heated externally, and the excess of sulphurous acid was blown off and recovered. This process has been exploited, but cannot as yet be pronounced a commercial success. Though the yields of this method are very satisfactory, both in quantity and quality, yet the slowness of external heating seriously limits the output of a plant. Reference should be made to the recent developments which have been made in Sweden in fermenting the sugars produced in the digestion of sulphite pulp. It is apparent that the hydrolysis of sawdust by sulphurous acid and acid sulphites, is making the production of alcohol possible on a commercial scale. In Ewen and Tomlinson's method, which is being worked commercially in North America, sawdust is hydrolysed by sulphuric acid, the glucose produced being subsequently fermented. In this process conditions of moisture and percentage of acid approximate those of Classen, but the digester is heated internally by means of live steam. Attracted by the fact that hydrochloric acid seemed to be more active than other acids in decomposing cellulosic materials, I was led to investigate the action of hydrochloric acid upon sawdusts under conditions where the reacting materials should be heated internally by live steam, and where the amount of water present should not exceed by more than 50 per cent the weight of dry sawdust in the digester. Investigations on a commercial scale of methods not described in this paper are outlined in United States Patent (No. 985,726). EXPERIMENTAL PART. .... <code>*</code> Reproduced from the Journal of the Society of Chemical Industry. ==== SCIENTIFIC AMERICAN SUPPLEMENT August 10, 1912 ==== The Production of Ethyl Alcohol from Waste Products'<BR> By Alcan Hirsch<BR> The first synthesis of ethyl alcohol was made about 1826, by Hennel, utilizing the reaction of ethylene and sulphuric acid to form sulphovinic acid which, upon heating with an additional quantity of sulphuric acid, yields alcohol. Berthelot improved this process by synthesizing ethylene from its elements via acetylene, and by making a more complete conversion of ethylene into sulphovinic acid. The one source of the alcohol is the action of the zymase of yeast upon glucose and other fermentable sugars. The sources of the fermentable sugars may be grouped into two classes: 1. The products of the hydrolysis of starch and allied substances by means of an amylase. 2. Solutions of sugars obtained directly from fruits and plants and from the non-crystallizable by-products of sugar-works—such as molasses. The most economical source of starch in our country is probably Indian corn, costing about $21 per ton. One ton of corn gives about ninety gallons of 94 per cent alcohol. About two gallons of raw molasses produce one gallon of 94 per cent alcohol, and this raw material costs about 21 cents per gallon of 94 per cent alcohol. The costs of the distillation of the mashes and the rectification and purification of alcohol cannot be entered into here, but the approximate cost of 95 per cent alcohol (190 proof) to the consumer may be taken as about 50 cents per gallon, exclusive of taxation. Within the last two or three years, two new commercial processes for the production of alcohol have been put in operation on a comparatively large scale. The purpose of this article is to present and discuss briefly from a chemical engineering standpoint these two processes: namely, the production of alcohol from sulphite cellulose waste lyes, and the production of alcohol from sawdust. I. ALCOHOL PROM SULPHITE LYES. In the sulphite process for the production of pulp, for every ton of cellulose there are about ten tons of sulphite lyes (T. H. Norton, U. S. Cons. Rep., November, 1911) which contain one-half the weight of the wood originally introduced into the boilers. Among the substances present are: dextrose and other sugars, xylose, acetic acid, tannic acid, nitrogen compounds, methyl alcohol, resins, etc., and calcium lignin-sulfonate, the chief product of the reaction. Most of the sugars in these lyes are fermentable and constitute about 1 per cent of the lyes, the yield of alcohol being from fifteen to sevonteen and one half gallons per ton of cellulose (C. G. Schwalbe, Z. angew. Chem., 23, 1537, 1910). Recently in Sweden two industrial processes have been developed, that of Ekstrom (P. G. Ekstrom, Eng. Pat. 6714, March 17th, 1910) at Skutskar and that of Wallin at Forss. These processes are practically identical, differing only in the neutralization of the acid. The former uses lime, chalk, etc., and the latter waste causticization sludge. The general scheme is as follows: The lyes are first neutralized in large vats, then cooled in towers and aerated. In a mill producing ten tons of cellulose per twenty-four hours the volume of the lyes to betreated is about nine thousand gallons per day. A yeast nutrient, malt extract or dead yeast is added to the cool, neutral liquid which is transferred to the fermentation vats. After fermentation (which takes three days or more) the yeast is separated and the liquid distilled in a continuous still. The percentage of alcohol is very low and considerably more steam is used in the distillation than is required with mash from molasses which usually contains about 7 per cent alcohol by volume. The alcohol obtained is already denatured as it contains considerable methyl alcohol (from the unfermented lyes), furfurol, aldehydes, and sometimes acetone, but is practically free from terpenes. The above process with a few minor changes is being worked on a large scale at several places in Sweden. The experimental plant at Skutskar began operations on May 24th, 1909, using waste lyes from a 5,000-ton cellulose plant. In March, 1910, 560 gallons of "normal strength" alcohol were produced per 24 hours. The total for the month was about 13,000 gallons. The process yields about 6 gallons of absolute alcohol for 1,000 gallons lye, and about 14 gallons for every ton of cellulose. As the alcohol produced from waste lyes is denatured, its chief uses will necessarily be for heating and other industrial purposes. The industrial prospects of this process depend on the cost of production, condition of taxation and capacity of the market. Estimates of the cost of production for a mill producing 340,000 gallons per annum place the cost at about $9.50 per 100 gallons. In Sweden the tax per gallon increases with the output, so that for an annual production of 340,000 gallons, the cost of production including the tax is about $15.50 per 100 gallons. In Germany excise regulations penalize new distilleries so that in addition to the cost of production, sulphite spirit would be subject to a tax of about $17 per 100 gallons. Regarding the capacity of the market, in Sweden during the fiscal year 1908-1909 the total production of alcohol was about 5,800,000 gallons (absolute) and the imports were about 310,000 gallons. The sulphite lye mill at Larkudden is reported as having produced spirit during the year 1910 at the rate of 157,000 gallons per annum, and the annual rate of production at the present time is estimated at 250,000-400,000 gallons. The pulp mills of Sweden can produce 6,500,000 gallons of absolute alcohol per annum. It must be remembered that the present method of production from grain is always intimately connected with the agricultural industries of the country, and therefore will not be easily displaced. Also, while under special conditions (especially low taxation) the sulphite process can be worked at a profit, yet it does not solve the problem of the disposal of the waste lyes, as only about 1 per cent of the total weight of lyes is converted into alcohol. In fact, on account of the presence of dead yeast, etc., the problem of the disposal of the lyes may be aggravated by the use of this process. II. ALCOHOL FROM SAWDUST. The cost of raw material is always of great importance in any industry. While Indian corn costs about $21 per ton, sawdust in the vicinity of a large mill where it is a by-product can be bought at a cost of 30 to 50 cents a ton including handling and transportation (short distances). One ton of sawdust calculated to the dry basis can yield 20 gallons of 94 per cent alcohol, which makes the cost of this raw material 2l/% cents per gallon 94 per cent alcohol, as against 24 cents for Indian corn. For nearly one hundred years it has been known to chemists that fermentable sugars can be produced from sawdust. The reaction is usually spoken of as being very simple, all that is necessary being to add a molecule of water to the cellulose. This hydrolysis is probably as complex as it is baffling. The unknown composition of those polysaccharides which we call cellulose and the very different results obtained on hydrolysis under slightly different conditions of catalyzer, temperature and pressure indicate that somewhat intricate reactions occur, the complete chemistry of which is not known at the present time. A very largo number of patents have been granted on this reaction, the main differences being in method of manipulation and the catalyzing acid used. Sulphuric acid has been used in many cases, but the subsequent removal of this acid has proved a serious stumbling-block. No process that was capable of commercial application had been devised until the year 1900 when Dr. Alexander Classen was granted his first patent. The more import ant English patents granted him are: No. 258, January 4th, 1900; No. 4,199, February 27th, 1901; No. 12,588, June 20th, 1901. "Process claimed consists in boiling cellulose in a closed vessel at a temperature of 120 to 145 deg. Cent, with a solution containing sulphurous and sulphuric acids or sulphurous and hydrochloric acids. A solution of 2 per cent or more of sulphurous acid and 0.2 per cent sulphuric acid is mentioned. The sulphuric acid may be conveniently formed in the boiler by admission of air or other suitable oxidizing agent. In this way concentrations of 10 per cent sugar may be obtained, 80 to 90 per cent of which is fermentable. Conversion is complete in 15 minutes." An experimental plant using this process was erected at Aachen and a similar plant on a larger scale was built at Highland Park near Chicago. The results were satisfactory so that it was decided to build a commercial scale plant at Hattiesburg, Miss. The capacity of the conversion cylinder was two tons. After the conversion the acid was neutralized, cleared by subsidence, pumped into large vats and fermented by yeast and then distilled. From a commercial viewpoint this plant was a complete failure. From a chemical engineering standpoint it is an excellent example of a process which fell just short of success. The reasons given for the failure are: 1. Length of time required for conversion: \Yi to 2 tons requiring 4 to 6 hours. 2. Prolonged action produces gums and caramels and makes extraction of the sugar tedious and expensive. 3. Large quantity of acid required. 4. Lining difficulties, especially with lead linings. Two chemical engineers, Ewen and Tomlinson, studied and undertook to improve this process. Their patent U. S. 938,308, 1909, describes their process. The converter used by Classen was about 30 feet in length and had a diameter of 3 feet, whereas in the Ewen and Tomlinson process the digester is much shorter, usually being about 12 feet in length and 8 feet in diameter. The latter line their converter with fire-brick instead of using the troublesome lead lining. The operation seems to be fairly simple. Sulphur dixoide gas to the extent of 1 per cent of the weight of the wood is introduced into the cylinder and live steam is turned on until a pressure of 100 pounds is obtained. The steam is then turned off and the cylinder slowly revolved for 40 to 45 minutes, the temperature and pressure being kept constant. The total time of conversion is about 1 hour as against 4 to 6 hours in the old process. In operating this process it is important to raise the temperature as quickly as possible to the "critical point" which is defined as "that temperature above which the production of unfermentable substances and the destruction of the sugars become excessive and lie between 135 and 163 deg. Cent." After extraction, the converted lyes have a total acidity of 0.64 per cent (calculated to HiSOj) containing sulphuric and acetic acids, a small amount of sulphurous acid and aromatic compounds of the type of pyrogallol. These liquors contain about 5 1/2 per cent of reducible sugars calculated to dextrose. Polyphenols, tannin and furfurol are usually present in small amounts. These liquors are fermented and distilled in the usual manner, some care being required in the fermentation to have present a proper food for the yeast. The distilled alcohol obtained is potable, free from the odor and taste of wood, and from methyl alcohol and fusel oils, but contains traces of furfurol and aldehydes. One and one half tons of dry wood give about 6 1/2 gallons of 94 per cent alcohol. From figures obtainable it appears that the efficiency of the process is from 75 to 80 per cent of the theoretical yield of alcohol. The Dupont Powder Company is operating a plant at Georgetown, South Carolina, for the production of alcohol from waste woods. This plant is licensed under the Ewen and Tomlinson patents, and while no figures were obtainable, it is stated that experiments so far indicate the ultimate success of the process. W. P. Cohoe is the inventor of a process for making fermentable glucose-like substances from cellulose and ligneous materials (U. S. Patents 985,725, 985,723, 1911). The conversion is done in two stages: first, steam is used producing acetic acid which is collected, and then steam and HC1 vapors are introduced into the converter. The raw material used is generally sawdust. The cost of production of alcohol by the sawdust process (Ruttan, J. Soc. Chem. Ind., 1909, p. 1290) is said to be about equal to that of grain, although there is such an enormous difference between the cost of the raw materials. One company, however, claims to be able to manufacture alcohol by the sawdust process at a cost of 7 cents per gallon. Without going into the details of the chemistry involved, it is striking that, although the patents claim a conversion of cellulose into sugar, the so-called true fibrous cellulose, absorbent cotton, does not yield to this treatment. Also the material left after treatment contains cellulose which upon re-treatment yields but traces of fermentable sugar. Although authorities differ, it is claimed by some that the acid acts as a catalyzer hydrolyzing the lignone complex and a proportion of the "easily attacked cellulose." The oxycellulose and the "true cellulose" are said not to be seriously altered chemically. It would seem that there is a possibility that a process might be evolved where the alcohol conversion of the wood pulp might be made first, and then the residue subsequently utilized for the production of paper pulp. <code>*</code> Reproduced from the Journal of Industrial and Engineering Chemistry. === 1919 === ==== SCIENTIFIC AMERICAN SUPPLEMENT No. 2263 May 17, 1919 ==== The Motor Fuel Problem*<BR> EXPERTS in different industrial branches Would, On inquiry, probably draw up different lists of key industries. None of them, however, would omit to class the industry of internal combustion motors among the most important key industries, and this not only because these vehicles are still wanted in the Army. The war has so thoroughly changed all industrial foundations—quite apart from political and national considerations—that it will for some time to come be difficult to dismiss it from our minds when estimating the future. What was necessary, possible and probable during the war, may become undesirable and impossible in normal times. Some of the special uses of motors, uses which have rendered their rapid perfection possible, may vanish. But the motor will conquer other fields in which it had before the War already obtained a firmer footing in other countries than Over here. Authoritative Statistics are not available at present. To characterize, however, the importance of the industry, Mr. W. R. Ormandy, D.Sc., when discoursing on the Motor Fuel Problem before the Institution of Petroleum Technologists recently, stated that he estimated the wages paid annually in this country for the manufacture of motor vehicles at more than 10,000,000l. That estimate entirely disregards accessory industries connected with light alloys, Springs, rubber, tires, leather, &c., some of which may almost be said to stand and fall with the motor as matters are now. The United States are credited with 5,500,000 motor vehicles, half of which serve for farming, forestry, mining, stock raising, fisheries, &c. Motor transport and agricultural developments are inseparably linked. In the future aeroplanes will need such motor fuel. A Handley-Page machine alone consumes as much as 40 motor cars per hour, Dr. Ormandy believes, and even without the war the country would have wanted 200,000,000 gallons of motor spirit per annum by this time. Where is the fuel to come from? America produces some two-thirds of the world's petrol from natural oil; but it has long felt the pinch, and though new petroleum fields are opened, old ones dry up, and an actual world shortage will have to be met sooner or later. What other fuels can be utilized in internal combustion engines? Dr. Ormandy distinguished them as solid, gaseous, liquid. Solid coal can be gasified in the producer, but bituminous coal is hardly suitable for such purposes. The last word has not been said regarding steam-driven motors, how ever; the Clarkson motor omnibus has so far been run On paraffin, but Mr. Clarkson has, according to Mr. Ormandy, obtained promising results with coke-fired boilers. As regards charcoal, the woody lignites of Ireland may give a suitable fuel for producers. But though solid fuels may be adapted to serve as indirect fuel for stationary engines and heavy portable motors, they cannot play an important part. That gaseous fuel, compressed town gas, can be burnt in motors, has been shown ; 250 cub. ft. of gas are considered equivalent to a gallon of petrol; the introduction of suitable containers would render another auxiliary source available; but it would not do more. The more important liquid fuels are petrols, paraffin oils for marine engines, &c., and fuel oils for Diesel or semi-Diesel engines. Substitutes for petrol are gained by coal distillation. By-product ovens yield from 1% gallons to 3% gallons of liquid fuel per ton of coal carbonized. From the gas of gas works similarly 1 gallon or 2 gallons of benzol and toluol are obtained, and post-war conditions, Mr. Ormandy Suggested, might yield some 50,000,000 gallons per annum. If central electric power stations should take the expected development in combination with producer gas plants, however, that figure would be smaller. Shale oils help also, and the sulphurous shale deposits from Norfolk down to Dorset might be utilized; but that again would be a minor factor. The next available source, alcohol, could certainly be produced in almost unlimited quantities; but the heat of combustion of alcohol was relatively low, alcohol was not readily inflammable, and the advocates of alcohol-fuel had prejudiced their own cause. In any case little had been done by the public, the motor users, to whom motor manufacturers left that problem, and the Government had been guided by the experts of the Excise Department Alcohol could, and was, produced in the first instance from sugar molasses by fermentation, and there was no reason why sugar beet crops should not thrive here. If grain-raising were to be pushed, in fact, roots would have to be planted in rotation, and sugar-beet root might profitably replace turnips and mangolds; Dr. Ormandy seemed to forget that sugar-beet roots require heavy manuring. Sugar-alcohol, however, cannot directly supply the Empire's motor fuel, even if local industries, like the sugar manufacture from the Indian mowrah-tree flower, were fostered. But there are indirect sources of sugar. By digestion with alkalis or acids both starch and cellulose are converted into fermentable sugars. The English glucose is mostly starch-sugar, and quite an important article as such. The most common source of starch is the potato. In Germany, Dr. Ormandy rightly pointed out, alcohol is not produced from potatoes because they form the cheapest raw material available, but because their use favors home agriculture. Hundreds of square miles of sandy soil, notably in the eastern part of Prussia, sustain an agricultural population, which is occupied in the fields in summer, is busy in the distilleries in the winter, and obtains a valuable cattle food in the distillery residue (Schlempe). The special potatoes for the distillery fetch about 228. per ton in Germany; that money, however, would not alone keep the people, if it were not for the work and other profits drawn from an agriculturally poor soil. The Prussian Government has wisely encouraged potato farms and local distilleries which are the joint property of small peasants or owned by the great landlords. The question, however, is not really capable of such brief summation as Dr. Ormandy attempted. He did not overstate his case, however, and he warned his hearers against the optimistic estimate which Mr. R. W. Tweedy had given in a pamphlet on industrial alcohol. The alcohol yield of the best special potatoes does not exceed 20 gallons or 25 gallons of 95 per cent. alcohol per ton of potatoes, and Ireland could not produce 150,000,000 gallons of alcohol from 2,500,000 tons of potatoes, certainly not if the potatoes were to be sold at 31. 108. per ton to the distillery. For warmer climates, in Australia and Africa, maize yielding 75 gallons of alcohol is a much more promising material, of course. Successful experiments on the conversion of cellulose into sugar by the Classen process have recently been made in the United States, on a large Scale, Dr. Ormandy mentioned; but he did not give particulars, except that he spoke of a yield of 30 gallons or 40 gallons of commercial alcohol per ton of wood. How these figures compare with the 10 per cent. of 95 per cent. alcohol which the Ewen-Tomlinson process is said to yield, we do not know. The difficulties lie mainly in the construction of suitable vessels not attacked by hot acids under pressure. The sulphite wood-pulp residue treatment seems, however, really to have risen from the experimental stage, if Sweden has works producing 4,000,000 gallons of alcohol per annum in operation, and works for 3,000,000 gallons under construction; Norway is credited by Dr. Ormandy with works for 4,000,000 gallons, the strength of the alcohol not being stated. Sulphite wood pulp is the residue from paper-making with calcium or magnesium sulphite (instead of the more expensive caustic soda). The logs are sliced at right angles to the fibre and boiled for 5 hours or so at 2 atmospheres pressure in vessels lined with lead; the sulphite is prepared in Glover towers or in Vats. The sulphite liquor has so far practically been a waste product; there are difficulties about neutralization to start with, and it would be interesting to know how alcohol is obtained from the liquor, though it generally contains some sugar. There is finally the synthetic production of alcohol, from calcium carbide via acetylene. Such processes are certainly worked in Germany and by the Lonza Company in Switzerland, as we noted some time ago; with what results is not yet known. With the question of the suitability of alcohol as motor fuel we have dealt On other occasions. Thousands of alcohol motors, chiefly stationary for agricultural purposes, engines working with long stroke and high compression and fitted with pre-heaters for starting, were working on the Continent before the war. The higher thermal efficiency of these alcohol motors balances the lower heat value of the fuel, and the much-dreaded corrosion of the cylinders can be averted, as Continental experience and the experiments carried out by the Auto-car prove. That alcohol can also be used as fuel mixed with benzol, in the ratio of 2:1, e.g., without calling for more alteration of the engine than required for pre-heating the air supply and slightly enlarging the jet, is likewise established; motors run more smoothly on such mixtures than on petrol according to Dr. Ormandy. There is, of course, need for further research, as to viscosity, vapour tension, the admissible percentage of water, and the best proportions of mixtures of benzol, alcohol and water, and also alcohol-benzol-ether mixtures. Lubrication problems may also arise. The use of paraffin oil mixed with petroleum caused trouble in the bearings, and Dr. Ormandy found out in experimenting together with Mr. Lester that, when petrol is used, a certain amount of this fuel gets into the crank-case oil and sets up an equilibrium depending upon the temperature of the oil, the amount of ventilation and other factors. Moreover, with paraffin, which has a lower vapor pressure, larger quantities are washed out and retained by the oil spray in the crank-case, so that the viscosity of the lubricating oil is diminished. The main questions are, however, how the supply and the distribution of an alcohol-benzol mixture, in the ratio 2:1, can be secured and maintained. These are largely financial questions, which Dr. Ormandy argues on the following lines. The United States are supposed to have built 1,700,000 motor vehicles (not including motor ploughs, boats, aeroplanes, petrol driven lighting and pumping sets) during the past twelve months. At the rate of 400 gallons annually these motors would alone consume some 700,000,000 gallons or 2,000,000 tons of petrol; supposing crude petroleum to yield 20 per cent. of petrol, an additional 10,000,000 tons of crude oil would be required to keep the American cars of one year on the road. The world's production of petroleum probably does not exceed 50,000,000 tons per year. The present production of benzol for motors in this country may come up to 50,000,000 gallons per annum; if 100,000,000 gallons of alcohol were also available, the present demand could be met. To double the benzol output of petrol, as we shall see, necessitates that the output of the gas works and the iron and steel trade should be doubled, and the enormous capital involved in these expansions cannot be got into operation as rapidly as the fuel demand is increasing. There is hence no alternative in sight except alcohol. This demand for alcohol is no new fancy, of course. The report of the Imperial Motor Transport Conference of 1913 may be summed up in the words “Develop alcohol fuel,” and Dr. Ormandy himself had advocated alcohol in the Automobile Club twenty years ago when petrol was 18 per gallon. An Inter-Departmental Government Committee, of which Sir Boverton Redwood is chairman, is dealing with fuel-alcohol. We pass to the distribution problem and the gas and iron works. The production of benzol depends upon gas works and coke-oven works. The gas works will grow, and hence be able to produce more benzol; but they will also have to utilize low-grade coal, and to face many new problems Dr. Ormandy, we might interpose, seems to presume that the gas companies are willing to go on with stripping the gas; some gas engineers certainly wish to be relieved of this obligation. Coke ovens, the other source of benzol, can only grow together with iron and steel works, and whether they will put down benzol-recovery plant will depend upon the market value of the benzol. To control the market the petroleum companies will endeavor to obtain possession of the benzol supply. They can rightly claim that they are able to mix the benzol with the petrol and that they possess the organization necessary for distributing the product. The benzol producers, likewise organized, might dispose of their whole production to the petroleum firms at an agreed price, or on a sliding scale, to be relieved of the distribution worry; but they cannot expect to control the motor fuel market if they supply only part of the total demand. The petroleum companies hold the field apart from the benzol; they are corporate bodies existing for the purpose of making profits. They can also retard the progress of alcohol. Thus the fuel users, the public, will be shorn, unless the Government step in, or the users combine with the motor industry to secure the benzol supply of the Country as a national asset. They will combine, Dr. Ormandy thinks, if they recognize the situation. <code>*</code> From Engineering. === 1920 === ==== SCIENTIFIC AMERICAN MONTHLY June, 1920 ==== Three New Sources of Fuel Alcohol*<BR> Production of Alcohol from Molasses, Wood Waste and Acetylene<BR> GERMANY which, prior to the war manufactured alcohol only from potatoes and grains, when compelled by the Allied blockade to conserve its food supplies, resorted to different methods of alcohol production, some of which were formerly commercially Impractical and others entirely unknown in that country. These include the following processes :<BR> a. Process based on the use of molasses.<BR> b. Process utilizing the sulphite liquor of plants for the purification of wood pulp.<BR> c. Process consisting in saccharifying wood and fermenting the sugar thus produced (grain alcohol from wood).<BR> d. Process of generating alcohol by the hydrogenation of acetic aldehyde, which in turn is obtained by fixing the element of water on acetylene (carbide alcohol).<BR> The German government assumed full charge of alcohol production, and it was feared in the industry that this step, which was taken as a war measure, would not be rescinded, but would result In an alcohol monopoly in the future. This project of an alcohol monopoly was adopted on Its third reading by the Reichstag, on July 13, 1918, by the Bundesrath on July 19, and finally promulgated as a law on the 26th of the same month. In the text of this bill is found some very Interesting in formation on the new processes (b, c and d) referred to in the foregoing. There is no need to refer here to the fiscal character of this law, but the technical appendices will be of interest to our readers, and a translation is here given. Aside from the technical Information contained therein, these appendices furnish general indications regarding the economic values attributed to the different methods at the time. In cellulose plants, the wood pulp is boiled in an aqueous solution of bisulphite of calcium, In order to purify the cellulose contained in the wood, by the elimination of materials with which it is Impregnated. Up to quite recently, this bisulphite solution, after it had once served its purpose, was not recovered, but was drained off and often caused great damage. During the early part of 1900 It was discovered that the waste liquors of German cellulose factories contained a little more than one per cent of sugar, and it was found that from 1,000 cu. ft. of this waste liquor it was possible to recover from 42.5 to 50 gal. of alcohol. These results were verified in 1915 by renewed experiments. The discovery, however, was never put to practical use in Germany, for the reason that the manufacture of alcohol from sulphite waste liquors — In view of the fiscal regulations concerning alcohol then in force — would have yielded no profit. Moreover, the often expressed belief that by the treatment of the sulphite waste liquors for the production of alcohol (that Is to say, by the elimination of the sugar content), the delicate question of waste liquor disposal would be solved, was not a sufficient incentive. In Sweden, on the other hand, the manufacture of alcohol from waste liquors was successfully taken up during the year 1909, and in that country there are now numerous plants for the production of alcohol from sulphites. Under the compelling influences of the war the manufacture of alcohol from sulphite waste liquors was taken up anew in Germany, and the experience gained in Sweden was turned to good account. The process for recovering alcohol from sulphite liquor comprises three operations, as follows: (1) The preparation of the waste liquor for fermentation; (2) the fermentation of the sulphitic must, and (3) the distillation of the fermented sulphite solution. Sulphite waste liquors contain, in addition to sulphurous acid, which interferes with the fermenting action of the yeast, acetic acid and formic acid. These acids are eliminated partly by blowing air through the waste liquors, after they have been raised to a temperature of 185-195 deg. fahr., partly by the addition of carbonate of lime and of a little slacked lime. The neutralization must be carried to a point necessitated by the subsequent fermentation. This Is accomplished in concrete tanks in which the waste liquor is allowed to remain for some hours In order that It may be come clarified. This is followed by another clarification of the liquor from which the mud has been separated, which is accomplished in a reservoir which serves for filling the fermentation vats. The waste liquor is then transferred to a concentration tank cooled by air, in which at the same time it is cooled, saturated with air and concentrated to a certain degree. Fermentation takes place in tanks of 3,500 cu. ft. capacity, with the aid of a very active yeast, which has been slowly accustomed to the conditions which the fermentation of the waste liquor presents, and which is continually transferred from a tank In which fermentation has been completed, into a fresh tank. The sulphate waste liquor contains insufficient quantities of nutriment for the yeast, and for this reason there Is added either ammonium sulphate, or super-phosphate, or, on the other hand, a yeast extract which is prepared in distilleries with waste liquor containing an excess of yeast. The fermentation takes place at 84-85 deg. fahr., and on the average requires 72 hours, producing from 66-72 gal. of alcohol from 1,000 cu. ft. of waste liquor. The alcohol contained in the fermented waste liquor is eliminated in large distilling apparatuses, in which, on account of the small alcohol must content (0.9 to 0.95 per cent), and on account of the large quantity of liquid to be treated, the application of heat is especially advantageous. The must contains volatile, organic adds, and filters of sodium carbonate must be introduced during the distillation. The distilling apparatus may also receive a charge of a solution of sodium carbonate. In some plants, the unrectifled alcohol obtained from bisulphitic waste liquors still contains a small amount of sulphuric acid. The only thing to distinguish It from unrectified alcohol obtained from potatoes is the small content of methyl alcohol and of aldehyde. Small quantities of fusel oil are also often found in it. The crude alcohol Is materially improved by the use of distilling apparatus working on the principle of separating the head, In such a way as to obtain, by the separation of the heads (representing 10 per cent of the total) a sulphite alcohol susceptible of being denatured and the heads purified. The purification of sulphite alcohol does not present any special difficulty. It should be pointed out, however, that rectified sulphite alcohol still contains a little wood alcohol which can be separated from it only with difficulty. Sulphite alcohol may be employed for all purposes for which potato alcohol is suitable. If we assume a yield of 10.7 gal. of alcohol per ton of cellulose (which corresponds to 0.9 per cent of alcohol in the fermented liquor), the German sulphite distilleries with the plant Installed by them during the war, in one year can furnish 116,000 hectoliters (3,000,000 gal.) of alcohol (corresponding to 1,044,000 metric quintals, or nearly 100,000 tons of potatoes). The total production of the cellulose works working the sulphite process being approximately 600,000 tons per year, in peace-time, by the treatment of all the waste liquors for the production of alcohol, it would be possible to obtain annually 6,400,000 gal. of alcohql (representing a consumption of 240,000 tons of potatoes). Whether the cellulose factories will extend their alcohol production will depend upon what progress is made with other methods of utilizing waste liquors. The small cellulose works, which during the war could work part of their waste liquors for the purpose of producing glues, did not consider it of sufficient importance to erect plants for the production of alcohol. COST OF PRODUCTION. The cost of producing alcohol from sulphite Is still undetermined. A diminution of the cost will not be possible until after the fruition of efforts looking towards the concentration of the vinasse derived from the emptying of the sulphite must, and toward the production of methyl alcohol, acetone, acetic acid, and cellulose wax by the dry distillation of this vinasse. From the remotest antiquity, alcohol has been obtained from the saccharine juices of plants, and from vegetable material containing starch. Experiments with the object of preparing alcohol from cellulose—the carbo-hydrate of the greatest importance next to sugar and starch—were attempted only at a relatively late date. In 1S19 it was found possible, by treating cellulose by means of concentrated sulphuric acid, to obtain a fermentable sugar, dextrose. The production of alcohol from the cellulose contained in wood seemed at first an insoluble problem, in spite of numerous researches. Not only does the need of large quantities of sulphuric acid for the transformation of the cellulose Into sugar occasion heavy expense, but it also involves great technical difficulties, which are due to the fact that it is necessary to separate the acid from the dilute saccharine solution. Since 1890, chemists have paid renewed attention to the problem of obtaining alcohol from substances containing cellulose, as is evidenced by the numerous patents issued on the subject during that period. The latter generally relate to the transformation of cellulose, tinder the Influence of a dilute mineral acid, and the majority effect the process in close vessels under pressure. Attempts have been made to saccharize the cellulose contained in peat, either by heating it for a long period In contact with an acid at atmospheric pressure, or by heating it for a short time in contact with an acid under high pressure. The saccharine solution obtained by filtration must lie treated with chalk in order to diminish the acidity, and then be submitted to fermentation. For the saccharization of wood and of wood waste, numerous processes have been evolved, which utilize either sulphuric acid, sulphurous acid, anhydrous sulphite or a mixture of these, with the use of steam under pressure. In all of these processes, the sugar derived from the wood should be recovered by drainage. The aqueous saccharine solution should, after neutralization of the acid, be prepared for fermentation. Undoubtedly, this process permits of a yield of 14 to 28 gal. of alcohol per ton of wood in the dry state, starting with wood waste, which up to now was burned as of no value. Nevertheless, in Germany, alcohol derived from wood has not been able to compete with alcohol from potatoes, on account of the excise tax imposed. It is for this reason that none of the attempts in Germany to manufacture alcohol from wood have passed beyond the laboratory stage. On the contrary, in France, England and the United States the manufacture of alcohol from wood has entered the domain of practice. In one plant in the United States, which is said to have an annual output of 500,000 gal., the yield varies from 15.4 to 22.8 gal. of alcohol per ton of dry material. In Germany a beginning was made in the spring of 1916 in the manufacture of alcohol from wood, with the object of conserving the potato and molasses supply. The Classen process on the one hand, and the process of Windesheim-ten-Doornkaat, on the other, proved themselves best adapted for practical application. By the Classen process the saw dust is heated for 40 min. in rotary caldrons, with sulphurous acid, under a steam pressure of 7 atmospheres (313 deg. fahr. ). The steam is then allowed to expand as rapidly as possible, and the saccharized wood must is emptied out into diffusers. The saccharine solution obtained by diffusion is neutralized up to the necessary point in tanks containing an agitator, an addition of table salt is made, and the mass is allowed to ferment In fermenting tanks with pressed yeast, or beer yeast. The alcohol formed is separated in the usual distilling apparatus. With the Classen process one may count on a yield of at least 14.5 gal. of alcohol per ton of dry material. The process has been improved, so that the yield already has been increased to 20 and 25 gal., and it undoubtedly will be still further increased. By the Wlndeshelm-ten-Doornkaat process, sawdust is heated with diluted hydrochloric acid in the presence of catalizers (metallic salts), in rotary caldrons, under a pressure of 7 to 8 atmospheres (330-340 deg. fahr.) for 20 to 30 min. The final treatment of the saccharized sawdust is the same as that already described. This process, which is probably subject to Improvement, yields a minimum of 7.2 gal. of alcohol per 1,000 lb. of wood In the dry state. The alcohol production plants under construction will work according to these two processes. The choice between the two will depend upon the kind of acid most available, and upon the alcohol yield which will be obtained. Germany produces from 500,000 to 1,000,000 tons of sawdust, susceptible of being treated for the manufacture of alcohol. The alcohol factories possess a total of 51 caldrons capable of handling one ton of dry material each. By working day and night, each caldron can handle 10 batches of material daily, or—figuring on 350 working days a year—3,500 batches yearly. That is to say, working to full capacity, it will be possible to treat 178,500 tons of wood annually on the dry basis, or 238,000 tons of sawdust. If one figures on a yield of 14.4 gal. of alcohol per ton of dry material, a total production of 2,570,000 gal. of alcohol per year is arrived at, which is equivalent to the yield from 106,000 tons of potatoes. If the yield can be raised to 24 gal. of alcohol per ton of dry wood, as is to be expected, the production of alcohol will amount to 4,190,000 gal. (corresponding to 176,000 tons of potatoes). It is still impossible to give any data regarding the cost of producing alcohol from wood. It is certain, however, that it is much higher than that of alcohol from sulphite. The production of alcohol from wood can Become commercially practical only if the wood acted upon, when deprived of its sugar, can be utilized as feed, or rather if it should prove possible to obtain from it acetone, wood alcohol and other products of dry distillation. The necessary research work has not yet been carried out, and at present the only use that can be made of the heat value of the residue of the saccharized wood, is to use it as fuel under the boilers in the alcohol plants. The unrectified alcohol obtained from wood contains as impurities small quantities of aldehyde, wood alcohol, "furfurol" and fusel oil. The rectification of the alcohol, how ever, presents absolutely no difficulties. Inasmuch as the raw alcohol made from wood, on account of its low alcohol content, cannot be denatured, and therefore cannot be employed for industrial uses, purification readily yields an alcohol which is sufficient for the requirements of powder manufacture. It is still necessary to determine experimentally whether the recovery and commercial utilization of the by products, such as furfurol, will not permit of reducing the cost of producing alcohol from wood. MANUFACTURE OF ALCOHOL FROM CALCIUM CARBIDE. When lime and coke are heated to the temperature of the electric furnace, about 5.000 deg. F., a new chemical compound is obtained—calcium carbide. Of all the numerous carbides known, the carbide of calcium is industrially of by far the greatest importance, and for this reason it is generally called simply carbide. It is decomposed by water, forming acetylene, with a residue of lime. If acetylene is introduced into a heated, diluted acid, in the presence of a mercury compound, aldehyde (acetaldehyde) is formed, the components of water being fixed upon the carbide. Aldehyde is a very volatile combustible liquid, of penetrating odor, which combines with hydrogen in the presence of certain metallic catalizers. such as nickel, producing ethyl alcohol (grain alcohol). As the acid used and the mercury compounds or other metallic catalizers are not modified in the process, or In any case are capable of being returned to their initial state with only small loss, and as the hydrogen may be produced with coke and water, this method of manufacturing alcohol requires only coal, limestone and a rather small amount of heat. In the manufacture of alcohol from carbide, the following expenses are incurred : 1 —Manufacture of carbide ; for 1,000 gal. of alcohol it is well, in the present state of the art, to count on approximately 6.5 tons of carbide, for the production of which 24,000 kilowatt hrs., S tons of coal and 12 tons of limestone are necessary. If cheap power is obtainable in the neighborhood, as, for instance, water power, or power obtained from cheap fuels, such as lignite and peat, the cost per kilowatt-hour may be as low as 2 pfennigs; in that case, the power cost for 1,000 gal. of carbide may be set down at 240 marks. The cost of the raw material, charcoal and limestone, is approximately 60 marks; the cost price of carbide previous to the war in Germany was 112 to 115 marks per ton. Experience indicates that these figures represent the lower limit, and this statement is corroborated by the figures previously given. As far as can be judged at present, small plants, or those not favorably situated, could not produce at this figure. What the price of carbide may be after the war can only be conjectured. It should be pointed out, however, that the cost of packing for the retail trade, which must he of such a character as to prevent all moisture from reaching the carbide, which cost is not appreciable, need not be considered here, and that the overhead expenses connected with the manufacture of carbide at wholesale need not play a very important part. Moreover, the amount of 2 pfennigs per kw. hr. does not seem to be the minimum at which power can be delivered in Germany. 2—The manufacture of acetylene from carbide does not involve any special expenses for other raw materials, for the decomposition of carbide is effected by means of water, and the purification of the gas is effected by different purifying masses of which some are cheap in themselves, while others are capable of being regenerated, among these latter figuring compounds of copper, chrome and lead, as well as of chlorine and lime. The yield to be expected is 80 gal., equivalent to 0.35 11). of acetylene per pound of carbide of good quality. 3—The following operation, that is to say, the transformation of acetylene into aldehyde, does not involve the consumption of any important amount of raw material, but does Involve the consumption of a large amount of energy. Up to the present, it involves only slight losses. The yield, according to information furnished by the plants (of which none has been in operation for any great length of time) is at most 90 per cent. 4—A most important item in the final operation, the production of alcohol, is the consumption of hydrogen. In order to obtain 1,000 gal. of alcohol, it has been calculated that it is necessary to consume at least 53,000 cu. ft. of hydrogen, which can be obtained at about 2.25 marks per 1,000 cu. ft., this low price being made possible by the low cost of the raw materials, in spite of the expensive installations necessitated for production and purification. Assuming that all conditions are favorable, that is to say, that the location of the plant is wisely chosen, and that operations are conducted on a sufficiently large scale, one may count on a cost price of 900 marks per 1,000 gal. of alcohol, equivalent to 90 pfennigs per gal., tills including the cost of raw materials. To this must be added some thing for depreciation of plant, salaries, etc., items which are rather difficult to estimate in advance. The purification of the alcohol obtained should not present any greater difficulties than the purification of alcohol obtained by fermentation. As a result of the method of preparation, it does not contain any secondary product of fermentation known under the name of fusel oil : on the other hand, it may contain some sulphuric, phosphoric and arsenic combinations and certainly there will be aldehyde and substances derived therefrom. The best samples so far presented to the government represent a fine industrial alcohol which can be used in most industries. PRICE CALCULATION. The preceding price calculations are confined to a certain extent by the conditions of a contract under which a Lonza (Switzerland) concern has engaged to furnish alcohol obtained from carbide to the Swiss government. The price of the rectified alcohol, according to the contract, is to be 1.330 marks per 1,000 gal., the Federal administration taking delivery at the plant in its own tank cars. From a certain point of view, the operating conditions of the plant at Lonza should be better than could generally be obtained in Germany. Undoubtedly this plant gets its power at less than 2 pfennigs per kw. hr. • Near the great waterfalls in Norway, there are large plants which obtain power at approximately 0.5 pfennig per kw. hr. On the other hand, the contract was closed on the basis of high cost of coal (36 marks per ton). The cost price of the Lonza plant (which is a private enterprise) may be estimated at a little more than 110 marks per 100 gal. of alcohol. It should not be lost sight of that such calculations are subject to numerous causes of error, which are difficult to estimate. If, for instance, the cost of the kw. hr. becomes greater than that previously given, as may easily happen in certain parts of Germany, if the yield of aldehyde or alcohol is a few per cent less than that assumed, or if the renewal of the carbide furnaces occasions greater expense than that provided for, and, finally, if the royalty to be paid on the patent is added, the cost price of alcohol from carbide may come somewhat higher than that arrived at above. A private corporation, which has carried on experiments on a small scale, has reached the conclusion that alcohol derived from carbide cannot easily compete with alcohol of fermentation, even if taxation should be the same. The process outlined above is so far the only one which has been applied on a large scale. However, it is not the only one theoretically possible. One may also conceive of a process in which no aldehyde is produced, but only ethylene, by the addition of hydrogen to the acetylene. It is an easy matter to pass from ethylene to ethyl alcohol, by a process which has been known for a long time. This has recently been more closely investigated, but it is not yet possible to give any information regarding its success. Plants already in existence in Germany for the manufacture of carbide and those whose construction has been decided upon, will furnish annually from 400,000 to 450,000 tons of carbide, when operating to full capacity. After deducting the quantities of carbide necessary for lighting, for metallurgical operations, etc., there remain nearly 400,000 tons for fertilizer or for alcohol, and this would produce 66,000,000 gal. of alcohol. It remains to be investigated what influence the calcium cyanamide obtained from carbide may have on the production of potatoes, and thus on the production of alcohol. One pound of carbide when heated with nitrogen furnishes 1.25 pounds of calcium cyanamide, containing approximately 20 per cent of nitrogen, and considering that it is customary to count on a gain in yield of 100 pounds of potatoes per pound of fixed nitrogen in the fertilizer, the use of one pound of carbide for the manufacture of nitrogenous fertilizers would result in a gain in production up to 25 pounds of potatoes, equivalent to 0.133 gal. of alcohol; that Is to say, more than four times the amount of alcohol which may be obtained directly by chemical process. On the other hand, if one considers that calcium cyanamide is now the lowest priced fertilizer, and that the growing of potatoes usually has a very favorable effect upon the following other crops, the direct manufacture of alcohol from carbide cannot be considered seriously until the agricultural demands for nitrogenous fertilizers in Germany have been satisfied in some other way, and filled at an adequate price. On the other hand, it is possible that there will not be a demand for a long time for all of the fertilizer that can be produced by the German plants utilizing carbide. Calcium cyanamide has this disadvantage that the caustic dust is very annoying when it is being spread, and that its fertilizing action depends, more than for other nitrogenous fertilizers, upon the nature of the soil, the atmospheric conditions, the nature of the plant, and the method and time of use. The German demand for nitrogenous fertilizers In the next few years may be estimated at between 1,500,000 and 2,000,000 tons per year. The yield in ammonium sulphate of the German coke ovens may be estimated at approximately 500,000 tons, and this may be increased. In fact, it is likely that the production of ammonium sulphate at the coke works will be increased to 1,000,000 tons within a few years. Whether it will be possible readily to sell from 500,000 to 600,000 tons of fertilizer, in the form of calcium cyanamide, will depend in the first place upon the price, and also upon the competition created by the importation of saltpeter from Chile, and from Norway, and other fertilizers which are technically perhaps even more advantageous. Under the first head, we have to do here with ammonium compounds, and with their derivates prepared by the Haber process, the entire supply of which at the present is under government control. If the nitrogenous fertilizers, which are relatively cheaper than those obtained from carbide, should be set free again, the result would be that the large German factories of carbide and calcium cyanamide would have to look elsewhere for a market for their products. <code>*</code>Reprinted from Automotive Industries, Jan. 8, 1920. === 1921 === The Journal of the AMERICAN SOCIETY of LUBRICATION ENGINEERS February edition page 8, PDF page 74 ==== SCIENTIFIC LUBRICATION and LIQUID FUEL February ==== FOREST PRODUCTS as MOTOR FUELS<BR> By E. C. SHERRARD Government Chemist Probes Situation <I>Much has been written about the possibilities of Ethyl Alchohol as a substitute for gasoline or rather perhaps, as a valuable auxiliary for blending purposes. The editor commends to the attention of the readers the following article written by a chemist of the Forestry Service, United States Department of Agriculture. It is quite complete in that it calculates the possible supply and what the addition to present production actually means.</I> A discussion of forest products as motor fuels naturally resolves itself at once into a discussion of wood as a source of ethyl alcohol since at present alcohol is the only product obtainable from this source in sufficient quantity to render it worthy of consideration. It is true that wood is the source of methanol but when its fuel value and its limited production are considered it is at once eliminated as a possible motor fuel. The use of producer gas from wood is of course confined to certain localities where the cost of wood is low or the cost of coal is high and is necessarily limited to use in stationary engines. The adaptability of the volatile products resulting from the destructive distillation of wood as motor fuels have as yet not been investigated although their use for, such a purpose is not without the realm of possibility. Thus it may be seen that at the present time at least alcohol is the only motor fuel that the forests can offer. They can, however, supply a tremendous quantity of this material, notwithstanding the fact that the processes used for the production of sugars and alcohol from wood are far from being perfected. <BR> At every discussion of the prospective liquid fuel shortage the merits of ethyl alcohol as a motor fuel are strongly considered. True, there are some disadvantages connected with the use of this fuel but these disadvantages are more than counterbalanced by the fact that it is one fuel that may be obtained from a theoretically inexhaustible source. Whether this fact, carrying as it does a strong appeal to our imagination, has affected our better judgement or not, the fact remains that most of the synthetic fuels recently developed use this material as a base. <BR> Assuming that ethyl alcohol will ultimately be used as a motor fuel the transition from the fuels in use at the present time will be slow because of several factors. In the first place, the decrease in gasoline will be gradual due to the constant development of new fields and the development of better methods of cracking the higher hydro-carbons. In the second place, greater efforts will be made to obtain from other sources a fuel that more nearly approximates the one in use at the present time in order to utilize the present type of motor. As a greater demand develops alcohol will no doubt be used in admixture with gasoline, the quantity of alcohol in the mixture increasing proportionately as the quantity of gasoline or similar fuel decreases. Even though this transition is extremely slow too much stress cannot be laid upon the desirability of developing sources of alcohol capable of supplying the enormous demand.<BR> Granting, then, that the time will come when alcohol will be in demand as a motor fuel the question arises as to what will be the source of this material. The present sources are entirely inadequate to supply the enormous quantities that will be required for this purpose. The present demands for gasoline in this country require about four billion gallons per year. When it is considered that only 100,000,000 proof gallons of alcohol were produced in 1919 it can readily be seen that in order to meet the possible future demand this production must be increased about one hundred fold. Although the chief sources of alcohol are waste products, for instance cane and beet molasses, it is doubtful if even a billion gallons of alcohol can ever be produced from these and other waste materials without supplementing these with grains, potatoes or other starch containing material commonly used as food. Other large sources of sugar may be further developed as for instance the nipa palm of the Phillipines or the agave and cactus of Mexico but even these will supply but a portion to the total amount of alcohol required. The fact is that if alcohol is to become the future motor fuel all of these sources will be needed to supply the demand. In addition to the sources already enumerated there are two other sources that should receive consideration although here again neither alone or even both would be sufficient to supply the quantity of alcohol required. These two sources are wood and waste sulphite liquor. Although sugars are obtainable from or are present in these materials, they are difficult to isolate and purify because of the presence of other water soluble substances. In fact, the only practical means we have of removing the sugars from such a solution is by first fermenting them and then removing the alcohol so formed by distillation. <BR> Since wood or cellulose containing plants may be considered the largest potential source of ethyl alcohol a description of the processes used for the production and isolation of the sugars will undoubtedly be interesting. The processes used for the production of ethyl alcohol from wood may be grouped into two general classes: first, the hydrolysis of the wood into fermentable sugars by means of dilute mineral acids, and second, the solution of wood in concentrated acid with a subsequent hydrolysis of the solution by boiling with water. <BR> Processes of the first class have received by far the greater amount of attention and several plants have been built to use this method both in this country and abroad. The process consists, in general, of treating sawdust or shredded wood with a dilute mineral acid under 100 to 120 pounds steam pressure. The sugars thus formed are extracted, the acid removed by neutralization and the resulting sugar solution fermented. <BR> Processes of the second class involving the use of concentrated acid have not received commercial attention, notwithstanding the fact that cellulose can be converted to sugar and alcohol almost quantitatively. This apparent neglect is due to the excessive cost of the large quantity of concentrated acid required and the difficulty of completely recovering it. <BR> As before mentioned, the first mentioned process has proved to be the more promising of the two and the greatest development has taken place along this line. This development has been slow and many difficulties and even failures have been encountered. A brief history of this development is not without interest. <BR> From the time of Braccannot’s attempts to produce sugars and alcohol from wood in 1819 to Simonsen’s researches in 1898 but little progress was made although the subject received considerable attention. The investigations were carried out mostly with a view to the commercial application of the process and many important details were neglected that have since been found to have an important bearing upon the success of the operation. As a consequence the early literature upon the subject consists largely of patents although several papers did appear that contained fundamental information. The fact remains, however, that all of the early attempts to commercialize the process met with failure largely because of insufficient knowledge of the reactions involved and of the mechanical requirements of such an alcohol plant. The first investigations from a purely scientific standpoint were carried out by Simonsen upon both cellulose and sawdust. He used sulphuric acid as the catalytic agent and from his results concluded that the best conditions for the inversion are as follows:<BR> Time of inversion—1/4 hour<BR> Acidity . . . . . . . . . 0.5% sulphuric acid<BR> Proportion water to wood . . . . . . . .1:4<BR> Pressure . . . . . . . . . . . .9 atmospheres<BR> Working under these conditions he was able to convert about six per cent of the dry weight of the sawdust into alcohol. He was unable, however, to duplicate his results on a large scale although in a few exceptional cases he obtained slightly higher yields than those he obtained in the small auto-clave. Korner later substantiated his yield of six per cent and pointed out further that the sugar and consequently the alcohol yield were proportional to the cellulose content of the material digested. <BR> In 1900, A. C.Classen developed and patented a process for the conversion of sawdust into sugar in which an aqueous solution of sulphurous acid was used as the hydrolyzing agent. This process has without doubt played the leading role in the development of the process that is now generally used, although the original method has been entirely supplanted by the sulphuric acid process in this country. A plant was installed at d'Auberviller, France by a French company for the purpose of determining the commercial feasibility of the Classen process. The results were evidently satisfactory since the company increased its capacity shortly afterward and also decided to erect a still larger plant in the Vosges. Both of these plants were designed to use sulphurous acid but differed from the earlier ones in that the cooking was done by means of indirect steam. Another radical departure from the original methods was the method used for the neutralization and fermentation of the digested material. Instead of the sugar being extracted in diffusion batteries, the calcium carbonate and water were added directly to the digested sawdust and the whole mass fermented and distilled in the usual way. Although higher yields were claimed for this method as compared with the extraction method, the fact remains that the plant operated intermittently for only a short time and then shut down. <BR> In 1903, Classen disposed of his patent rights for America to the Classen Lignin Company of Chicago. After experimenting upon a semi commercial scale for some time, this company erected a plant at Hattiesburg, Miss., at a cost of about $250,000. This plant operated upon longleaf pine but after a short period of operation failed because of mechanical and technical difficulties. The chief disadvantages of the process were first, four to six hours were required to convert 1% to 2 cords of wood, second, an extremely large quantity of acid was required, third, the prolonged heating caused the wood to be reduced to a fine powder which rendered extraction difficult while at the same time large quantities of sulphuric acid were formed with a consequent caramelization of the sugars produced, fourth, the digesters were lead lined and the buckling and breaking of the lining was a great source of delay and expense. <BR> Ewan and Tomlinson who were associated with the Classen process overcame most of these difficulties by using gaseous sulphur dioxide and cooking with direct steam. They were thus able to shorten the cooking period to forty-five minutes and to reduce the quantity of acid required. They also succeeded in constructing a digester that was not affected by the extreme conditions required by the process. In 1909 Ewan and Tomlinson were granted a patent covering the use of sulphuric acid as the catalytic agent, the cooking conditions being practically the same as those suggested by Simonsen several years before. The use of sulphuric acid removed many of the technical difficulties that had been previously experienced and the Standard Alcohol Company, with whom Ewan and Tomlinson were then associated, erected a plant at Georgetown, South Carolina. This plant was later acquired by the DuPont Company and operated intermittently until 1913 when a fire destroyed the saw mill of the Atlantic Coast Lumber Company from which the alcohol plant received its saw dust and wood waste. The sawmill was rebuilt in 1914 and the alcohol plant has operated successfully since that time. After disposing of the alcohol plant to the DuPont Company, the Standard Alcohol Company underwent a reorganization and interested some foreign capital in the erection of a plant of 5,000 gallon daily capacity at Fullerton, La. This plant was never operated successfully by the Standard Alcohol Company because of financial difficulties caused by the war. The lease was later acquired by American interest under the name of the Standard Lessee Corporation, who operated the plant for some time in order to assure themselves of the commercial applicability of the process. In 1917 they purchased the plant and have operated it continuously since that time except for short intervals when the supply of wood waste was insufficient to warrant operation. It is our understanding that this plant is now closed due to a curtailment of lumbering operations by the sawmill that was furnishing the wood waste. <BR> One other effort was made several years ago to establish the industry in this country by the Classen Chemical Company. Western capital was interested in the erection of a plant at Port Hadlock in Puget Sound for the production of ethyl alcohol and stock food from sawdust obtained from mills at Seattle, Tacoma, Everett, Anacortes and Port Blakely. This plant was equipped with six digesters of the same size and shape as those used in the French plant previously referred to. They were of the tubular type and the cooking was carried out by means of indirect steam. Sawdust and enough water were added through a manhole into the space between the tubes to raise the moisture content to about 45 per cent. Sulphur dioxide was then admitted and the mixture cooked at 75 to 100 pounds steam pressure. The cost of conversion was extremely high, first, because the corrosion of the digesters was very rapid, second, because the time necessary to heat by indirect steam was very long and, third, because it was necessary to replace the low pressure steam in the outer jacket with high pressure steam to prevent the sulphurous acid from leaking out into the outer jacket. The extraction apparatus was also far from efficient but this did not cause any concern because the extracted sawdust was later mixed with Hawaiian molasses and after drying, sold as a cattle food. In addition to the difficulties already enumerated the plant was located some eighty miles from a railroad which greatly increased all transportation charges both to and from the plant. This fact, coupled with the poor design of the digester and extraction equipment were the leading factors responsible for the failure of this plant. <BR> The fact that the process encountered so many difficulties in its transition from the experimental stage to the commercial application led the Forest Products Laboratory into a more detailed study of the many factors involved. Several years ago the laboratory installed apparatus having a capacity of about one-hundred and fifty pounds per cook and since that time about two hundred cooks have been carried out under varying conditions. Some of the previous work has been duplicated and many advances have been made. <BR> The greatest fault common to all the work that has been done heretofore is that the investigators were concerned chiefly with the increase in yield of the total sugars obtained, whereas, such increase does not necessarily mean that the alcohol yields increase proportionately. Without accurate fermentations and consequently without complete data the interpretation of results led to difficulty since in many cases the quantity of total sugar gives no indication of the quantity of alcohol obtainable. Since we have no good quantitative chemical means for separating the fermentable and non-fermentable sugars but must depend upon a biological process it has also became necessary to carefully standardize the fermentation procedure. The results obtained from these carefully standardized fermentation experiments more than emphasized the importance of this step. <BR> Another reason that so much of the early data was contradictory is due to the fact that many of the investigators used different amounts of acid solution of constant strength, thereby varying both the ratio of water to wood and acid to wood. It has been learned that these variables are not mutually dependent and that the “acidity” of the solution itself is of minor importance, except where it varies the actual ratio of acid to wood, and that the concentration of the catalytic agent, expressed in percent of the dry wood substance, is the decisive factor. <BR> In view of these facts it was thought wise to reinvestigate certain variables already studied in addition to others that might have a bearing upon the technical solution of the problem. <BR> The variables that have been studied are: <BR> 1. The influence of temperature and pressure.<BR> 2. Length of time of digestion.<BR> 3. Ratio of water to dry wood.<BR> 4. Ratio of catalyst to dry wood.<BR> 5. Concentration of catalyst in water.<BR> 6. Size of sawdust, shredded waste, etc.<BR> 7. Variation of yields from different species and mixtures.<BR> 8. A study of fermentation variables.<BR> From these investigations it has been learned that if the pressure and temperature are varied the quantity of sugar produced increases with an increase in pressure until the total sugar produced corresponds to about 23 percent of the dry weight of the wood. This increase occurs until a pressure of 7.6 atmospheres corresponding to a temperature of 174 degrees C has been reached after which a decrease in the yield of total sugar is noted. Although this decrease in total sugar is quite marked the quantity of fermentable sugar continued to increase indicating that as more of the non-fermentable sugar is destroyed more cellulose is hydrolyzed with the production of fermentable sugar. It might be well to point out that under most conditions an equilibrium is finally reached and that beyond that point no further increase in sugar production is obtainable. This point is reached when about 25 percent of sugar is formed, regardless of whether they are pentose or hexose sugars. At pressures greater than 7.5 atmospheres or temperatures greater than 175 degrees C even the hexose sugar breaks down quite rapidly. Neuman speaks of 175 degrees C as the “critical point” and claims that technically it is needless to investigate the production of sugar at higher temperatures.<BR> By holding the pressure, ratio of water to wood and acid concentration of acid constant and varying the time of cooking it was found that the best results were obtained from a 10 to 15 minutes cook. This holds for concentrations of acid corresponding to 1.4 to 2.5 per cent of the dry wood and for ratios of water to wood of 1.25 to 1 up to 4 to 1. It was found that the reaction was practically complete when a pressure of 115 pounds was reached but that by continuing the reaction for a few minutes a slightly larger yield of fermentable sugar was obtainable. The influence of different ratios of water to wood was studied by holding the other variables constant and varying the quantity of water added. The quantity of water within the limits of four parts of water to one part of wood and equal parts water and wood has very little effect upon the sugar or alcohol production. Although equal parts gave as good results as larger amounts it was found that 1.25 parts of water to 1 of wood was the most desirable ratio. This ratio assures a good mixture of water and wood and causes less difficulty in handling the digested material by eliminating the drip caused by larger proportions. <BR> Another series of experiments was conducted in which the concentration of sulphuric acid to dry wood was varied while the other variables were held constant. It was found that for spruce the alcohol yield increased rapidly with slight increases in the acid concentration for concentrations below one per cent of the dry wood. As the concentration of acid was increased from one per cent to four percent practically no difference in alcohol yield was noted. With short leaf pine an actual decrease occurred with concentrations of acid greater than 2.5 per cent of the dry wood. As regards total sugars a rapid increase was noted until a concentration of 1.25 per cent acid was reached after which the total sugar dropped as the quantity of acid was increased. As in the case of the other variable an increase of acid caused a slight but constant increase in the quantity of total sugar fermentable. Between the limits of one part of water to one of wood and four parts of water to one of wood no difference was noted in the effect of an acid of a given strength. In other words, the quantity of water present between these limits has very little effect upon the reaction. <BR> From the foregoing it will be seen that the ideal conditions for the conversion of sawdust to sugar are, a ten to fifteen minutes cook at 7.5 atmospheres pressure with a ratio of 1.25 parts of water to one of wood and a concentration of sulphuric acid corresponding to about 2.0 percent of the dry wood. When soft woods are treated under such conditions yields of sugar corresponding to 20 to 25 per cent of the dry weight of the wood can be obtained. In the case of hardwood the yields are considerably less, in most cases amounting to 12 to 14 percent of the dry wood. Since the hardwoods have received but little attention as yet there is a possibility that these yields may be increased by further experimentation. At the present time, however, the soft woods are the only ones that are being used or investigated. <BR> The soft wood yields in terms of alcohol correspond to about eight per cent alcohol when calculated upon the dry weight of the wood. Longleaf pine, for instance, will yield about 25 percent of total sugars of which about 75 percent are fermentable. This yield is equivalent to 24 to 25 gallons of 190 proof alcohol per ton of dry wood. While this paper deals only with the use of dilute sulphuric acid as the hydrolyzing agent several others have been investigated to a limited extent. It has been found that hydrochloric and phosphoric acids give practically the same results under the conditions previously mentioned. Some difficulty is met within the use of hydrochloric acid, however, since the salts formed during neutralization interfere with the action of the yeast. It has also been found that nitre cake or a mixture of nitre cake and sulphuric acid equivalent to 18 percent sulphuric acid gives very good results. Other salts such as sodium chloride, potassium chlorate and ferrous sulphate, when used with sulphuric acid, give good yields of sugar but in most cases the presence of the salts interfere with the final fermentation. <BR> In regard to the size of the wood particles best suited to this process it has been found that a mixture of sawdust and shredded slabs and edgings give the best results. Chips varying from 1/8 to 5/8 inch are completely penetrated and give yields of sugar comparable with those obtained from sawdust. Sawdust alone is difficult to leach and it has been found that a mixture of the two is much more readily handled and give the best results in the extraction battery. This extraction of the sugar on a large scale production is carried out in the same way and in the same kind of extraction cells as in the beet sugar industry. An extraction amounting to about 96 per cent of the total sugars is ordinarily obtained. It is interesting to note that the non-fermentable sugars are the first to be removed and that the fermentable sugars extract with more difficulty. In this connection it should be noted that a large proportion of bark should be avoided since practically no sugar is derived from it and the presence of it causes an unnecessary handling of a large volume of material from which little return is forthcoming. The presence of ten per cent or less of bark causes no appreciable decrease in the sugar and interferes but slightly with the plant operation. <BR> The species investigated include all of the soft woods that are cut in sufficient quantities to produce enough waste to warrant the erection of a plant. With but one exception the yield of alcohol from these different woods averages about 23 gallons of 190 proof alcohol. The one exception is western larch which produces almost 30 per cent of sugar. This sugar, however, consists largely of galactose which is difficult to ferment under ordinary conditions so that of the total sugar obtainable only forty per cent is fermentable. This, of course, eliminates this wood as a possible raw material, although it is possible that better methods can be devised by means of which a larger part of the sugar can be converted into alcohol. The hard woods cannot be considered as a source of alcohol at present because of the extremely low sugar yields. It should be pointed out, however, that the broad leaved woods are not with out promise since the yield of volatile acids from these are much greater than from the coniferous woods. <BR> A word concerning the fermentation of the sugars may be of interest. As soon as the digestion is complete the sugars are extracted from the residue and the acid neutralized with lime or calcium carbonate. After settling the liquor is ready for fermentation. Since the yeast will not develop in this solution it is necessary to first grow it in molasses. A small quantity of sugar liquor containing malt sprouts, ammonium sulphate and a small quantity of ammonium phosphate or phosphoric acid is then added as a yeast nutrient and the whole allowed to stand for about six hours. From then on two additions are made every three hours and then one every hour until the tub is filled. Thus it requires about thirty hours to fill a tub. By that time the fermentation is proceeding vigorously and is allowed to continue for the remainder of the 96 hour period after which time the liquor is ready for distillation. If we consider the fermentation efficiency as the quantity of sugar that disappears during fermentation and is obtained as alcohol the method shows an efficiency of about 90 to 94 per cent, which, I think, is considered fair in practice. By the use of this method it is very easy to duplicate our experiments and remarkably concordant results have been obtained. I regret that time prohibits a more detailed discussion of this very interesting phase of the work. <BR> Just a few words in regard to the materials available for the production of ethyl alcohol by the application of this process. We, of course, realize that if the time ever comes when alcohol will be used as commonly and in as large quantities as gasoline is today, the available wood waste will be far from sufficient to meet the demands. It will, however, be a source that cannot be ignored since from the waste a larger quantity of alcohol is obtainable than is being produced from other sources at the present time. I wish to emphasize the applicability of this or similar processes to other cellulose containing plants in case the demand for alcohol should ever exceed the quantity obtainable from the sources now in general use. It may at some future time be desirable to cultivate highly prolific, rapid growing plants having a relatively high cellulose content for conversion into alcohol. While this statement may seem a little far fetched it is well to consider that more alcohol is obtainable from a ton of dry wood than from a ton of sugar cane containing 75 per cent juice of which 14 per cent is fermentable. Of course there is the possibility that it will be found more economical to grow some sugar producing plant such as cane or sorgum, but the disadvantages, such as the short operating season, partly outweigh the advantages to be gained. Thus it will be seen that cellulose containing plants constitute as good a source of alcohol as any other if we except the waste materials now used such as crude molasses, or the more expensive starch containing foods. What plants would be best suited for this purpose is not known because few have been investigated from this standpoint. All cellulose containing plants are not adaptable to the process since some, such as the cane fibre itself which remains after the expression of the juice, gives rise under this treatment to a large quantity of pentose sugar and only a small quantity of fermentable sugar.<BR> Of the wood waste available only the mill waste has so far been considered since at present the cost of gathering the woods waste is prohibitive. <BR> About 25 per cent of the volume of the forest is left in the woods in the form of stumps, tops, limbs and small and defective trees and represents a volume of about 23,700,000 cords (100 cu. ft.of solid wood per cord.) Approximately 75 percent of the cut over forest comes to the mill in the form of logs of which 53 per cent is waste or on a basis of 100 cu. ft. of solid wood per cord, a total of 37,900,000 cords per year. This makes a total of woods and mill waste of 61,600,000 cords per year or almost 2-3 of the volume of the cut over forest. This is “primary waste” or waste in converting trees to rough lumber and does not include waste caused in dressing the lumber or “secondary wastes” such as result in working the lumber into finish ed products like furniture, house trim, flooring, vehicles, etc.<BR> The amount of waste available for alcohol production is dependent upon the efficiency of the mill in working the waste material over in to useful products. Of the cubical contents of a tree the following is wasted:<BR> Stumps . . . . . . . . . . . . . . . . . . . . . . 2%<BR> Tops . . . . . . . . . . . . . . . . . . . . . . . .18%<BR> Sawdust . . . . . . . . . . . . . . . . . . . . .12%<BR> Bark . . . . . . . . . . . . . . . . . . . . . . . . 10%<BR> Slabs . . . . . . . . . . . . . . . . . . . . . . . . 8%<BR> Edgings . . . . . . . . . . . . . . . . . . . . . . 8%<BR> Shavings . . . . . . . . . . . . . . . . . . . . . 4%<BR> The annual cut of lumber in the United States for the last five or six years is approximately 40,000,000,000 ft. b. m. The mill waste from this cut has been estimated by Margolin as follows:<BR> Saw log . . . . . . . . . . . . . . . . . . .100.0%<BR> Bark . . . . . . . . . . . . . . . . . . . . . . 13.0%<BR> Edgings and trimmings . . . . . . . . .8.7%<BR> Slabs . . . . . . . . . . . . . . . . . . . . . . .8.7%<BR> Careless manufacturing and accidents . . . . . . . . . . . . . . . . . . . .3.5%<BR> Loss in cutting standard widths and lengths . . . . . . . . . . . . . . . . . .1.7%<BR> Total . . . . . . . . . . . . . . . . . . . . . . 49.1%<BR> Lumber . . . . . . . . . . . . . . . . . . . . 50.9%<BR> For each thousand feet of lumber produced at the mill (equivalent to 83.3 cu. ft. solid wood) we have, according to the above table 80 cu. ft. of waste. This waste is distributed as follows:<BR> Bark . . . . . . . . . . . . . . . . . . . . 21.3 cu. ft.<BR> Sawdust . . . . . . . . . . . . . . . . . 22.<BR> Edgings and trimmings . . . . . .14.2<BR> Slabs . . . . . . . . . . . . . . . . . . . .14.2<BR> Careless manufacturing and accidents . . . . . . . . . . . . . . . . 5.6<BR> Loss in cutting to standard. . . .2.7<BR> 80.0 cu. ft.<BR> After deducting the bark this leaves in the form of waste 58 cu. ft. of solid wood per thousand feet of lumber cut or 2,320,000,000 cu. ft. annually. As the average weight of air dried wood is about 35 pounds this amounts to 40,000,000 tons. It is estimated that one-half of this is utilized by reworking and for fuel, the other one-half being absolute waste. <BR> The Journal of the AMERICAN SOCIETY of LUBRICATION ENGINEERS February edition page 8, PDF page 74 ==== TECHNOLOGY OF CELLULOSE ESTERS ==== The study of the hydrolysis of cellulose has engaged the attention of chemists for over a cent ury, as far back as 1797. A. Fourcroy and Vauquclin2 having published a memoir upon this subject, which twenty-two years later was made the basis of an investigation by H. Braconnot.3 The interest in the problem is due not only to the possible economic utilization of the resulting products, but also to the theoretical 1. Cf. C. A. 1919, 13, 1209, line 20. 2. Ann. Chim. Phys. 1797, (1), 23, 186, 203; Nicholson J. 1797, I, 385; Trommsdorff, J. Pharm. 1797, 6, 172, 189. 3. Ann. Chim. Phys. 1819, (2), 12, 172; abst. Dingl. Poly. 1820, 1, 312; 1827. 25, 81 ; Gilb. Ann. 1819, 63, 348; Edin. Phil. J. 1820, 2, 363; J. dc Pharm. 1820, 6, 416; Quart. J. Sci. 1820, 8, 386; Schw. J. 1819, 27, 328. Tilloch, Phil. Mag. 1820, 55, 53, 118. Sec also Nancy, Trav. Soc. Sci. 1819-1823, 66; Gilb. Ann. 1822, 70, 389; Giorn. Arcad. 1820, 6, 277; Quart. J. Sci. 1820, 9, 392. importance of the reactions as possibly furnishing a satisfactory solution of the structure of the cellulose complex, for the products obtained were crystalline and hence readily purified in contra distinction to cellulose, which in all forms is amorphous. The work of Braconnot was followed by that of J. Arnould,1 M. Pettenkofer,2 Tribouillet,3 Pelouze,4 G. Melsens,5 F. Varrentrapp, 6 A. Payen,7 H. Ludwig,8 H. Tauss,9 J. Matheus,10 C. Amos and W. Anderson,11 J. Poumarede and I*. Figuer,12 as well as, 1. Compt. rend. 1854, 39, 807; Dingl. Poly. 1854, 134, 219; Poly. Notiz. 1855, 31; Wag. Jahr. 1855. 1, 221; Instit. 1854, 366; Arch. ph. Nat. 27, 331. See also Tribouillet, Mon. Ind. 1854, 908; Dingl. Poly. 1854, 134, 316; Poly. Centr. 1855, 21, 128; Wag. Jahr. 1855, 1, 221. Melsens, Genie. Ind. 1855, 106; abst. Dingl. Poly. 1855, 138, 426. 2. Bayer Kunst. u. Gewerbebl. 1855, 136; Dingl. Poly. 1855,136, 387; Poly. Centr. 1855, 21, 955; Poly. Notiz. 1855, 10, 161; Wag. Jahr. 1855, 1, 222; Poly. Centr. 1855, 21, 955; Pharm. Centr. 1855, 26, 557. 3. Mon. Ind. 1854, 1908; Dingl. Poly. 1854, 134, 316; Poly. Centr. 1855, 21, 128; Wag. Jahr. 1855, 1, 221 ; Compt. rend. 1854, 39, 980. 4. Compt. rend. i859, 48, 327, 1027; abst. Mon. Sci. 1859-1800, 2, 86, 131; Poly. Centr. 1859, 25, 976; Dingl. Poly. 1859, 151, 394; Jahr. Chem. 1859, 12, 533;J. pharm. 1859, 35, 209; Instit. 1859, 49; Rep. Chim. Pure, 1, 272. See also Weil, Compt. rend. 1859, 48, 1027. Payen, Dingl. Poly. 1855, 138, 58. W. Stein, Poly. Centr. 1855, 21, 429. A. Hofmann and Redwood, Pharm. J. Trans. 14, 556; 15, 28; Chem. Soc. Quart. J. 1855, 8, 120. Robinet, J. Pharm. (3), 27, 191. Campani, Cimento, 2, 210. Rabourdin, J. Pharm. (3), 28, 68; Vierteljahrsehr pr. Pharm. 5, 406; Jahr. Chem. 1854, 7, 797. Walz, N. Jahr. Pharm. 3, 217. H. Ludwig, Arch. Pharm. (2), 82, 22; Pharm. Centr. 1855, 26, 512. Bordier, Dingl. Poly. 1855, 136, 387. 5. Genie industr. 1855, 106; Dingl. Poly. 1855, 138, 426; Wag. Jahr. 1855, I. 221 ; Poly. Centr. 1856, 22, 873. 6. Mitth. f. Gewerbever. des Herzogthums, 1865, 70; Dingl. Poly. 1866, 181, 233; Wag. Jahr. 1866, 12, 466; Braunschweig. 1866, 73; Deut. Ind. 1866, 366; Poly. Centr. 1866, 32, 1 150. 7. Compt. rend. 1867, 64, 1167; Dingl. Poly. 1867, 185, 308; Chem. Centr. 1868, 13, 20; Jahr. Chem. 1867, 952, 953; Mon. Sci. 1868, 10, 322; Poly. Centr. 1867, 33, 1351. See also Payen, Ann. Chim. Phys. 1866, (4), 7, 382; Zts. Chem. 1866, 334. Bachet and Marchard, Jahr. Chem. 1866, 19, 663; Van Tieghem, Compt. rend. 1863, 56, 963; abst. Jahr. Chem. 1863, 16, 565; Chem. Centr. 1863, 34, 950. 8. Zts. f. deutsche Landwirthe, 1855, 192; Dingl. Poly. 1855, 138, 80; Poly. Centr. 1855, 21, 1085; Poly. Notiz. 1855, 10, 286; Wag. Jahr. 1855, 1, 223. 9. Dingl. Poly. 1889, 273, 276; 1890, 276, 411; abst. Chem. News, 1890, 61, 169; J. S. C. I. 1889, 8, 913; Mon. Sci. 1890, 55, 164; Ber. 1889, 22, R, 769; Chem. Centr. 1889, 60, II, 444; Chem. Ind. 1889, 12, 514; Chem. Tech. Rep. 1890, II, 105; Jahr. Chem. 1889, 42, 2838; Wag. Jahr. 1889, 35, 1; Apothker Ztg. 1890, 232; J. S. C. I. 1890, 9, 883; Mon. Sci. 1891, 38, 1264; Ber. 1891, 24, R, 277; Chem. Centr. 1890, fit, II, 187; Jahr. Chem. 1890, 43, 2189, 2873; 1891, 44, 2811; Wag. Jahr. 1890, 36, 1148. 10. Dingl. Poly. 1893, 287, 91; abst. Jahr. Chem. 1893, 46, 647. 11. Mechanics Mag. 1866, 341; abst. Dingl. Poly. 1867, 184, 308; Jahr. Chem. 1867, 20, 953. Chaudet and Delamure-Debouteville, F. P. 123556, 1878; abst. Chem. Ind. 1878, 1, 421 ; Mon. Sci. 1879, 21, 1042. 12. Compt. rend. 1846, 23, 918; 1847, 25, 17; abst. J. prakt. Chem. TECHNOLOGY OF CEU.ULOSE ESTERS J. Sacc,1 F. Schulze,2 H. Mohl,3 E. Fremy4 with Terreil5 and Urbain,5 F. Bente,7 J. Erdmann,8 A. Stutzer,9 H. Kolbe,10 Flechsig,11 G. 1847, 42, 25; Berz. Jahr. 1849 ; 28, 340; Jahr. Chem. 1847-1848, 1, 797; Rev. Sci. 1847, 14, 68; Ann. 1847, 64, 387; Annuaire de Chim. 1847, 453; J. Pharm. 1847, (3), 11, 81 ; Rep. Pharm. (2), 47, 344;Soe. Philom. Proc. Verb. 1846, 130. 1. Ann. Chim. Phys. 1849, (3), 25, 218; abst. Jahr. Chem. 1849, 2, 473, 688, 704; J. prakt. Chem. 1849, 46, 430; Pharm. Centr. 1849, 20, 235; Chem. Gaz. 1849, 274. See also J. Sacc, Ann. Chim. Phys. 1849, (3), 27, 473; J. prakt. Chem. 1850, 49, 296; Pharm. Centr. 4850, 21, 91; Jahr. Chem. 1849, 2, 704; J. Pharm. 1849, 16, 293. 2. Chem. Centr. 1857, 28, 321; Jahr. Chem. 1857, 10, 491. See also Mitscherlich, Berl. Acad. Ber. 1850, 102; Ann. 18.50, 75, 305; J. prakt. Chem. 1850, 50, 144; Pharm. Centr. 1850, 21, 385; Chem. Gaz. 1851, 61; Instit. 1850, 228; Jahr. Chem. 1850, 3, 541. E. Schulze, Ber. 1890, 23, 2579; abst. J. C. S. 1890,58, 1456; Chem. Centr. 1890,61, 1, 650; J. S. C. I. 1890,19,1051. 3. Flora, 1840, 23, 609, 625; Ann. Sci. Nat. 1841, 15, 38. 4. Compt. rend. 1859, 48, 202, 862; 1876, 83, 1 136. N. J. Pharm. 35, 81 ; abst. Rep. Chim. Pure, 1859, 1, 269; Compt. rend. 1859, 48, 325, 360, 667, 862; J. Pharm. 35, 321, 401 ; abst. Inst. 1859, 121, 151 ; Rep. Chim. Pure, 1859, 1, 357, 433; Pharm. Vierteljahr. 9, 221; N. J. Pharm. Inst. 1859, 357; Rep. Chim. Pure, 1859, 1, 602; Chem. Centr. 1860, 4; Compt. rend. 1859, 49, Ml; Jahr. Chem. 1859, 12, 529, 530, 532, 533, 534, 537, 540; Bull. Soc. Chim. 1877, 28, 174; Ber. 1877, 10, 90. 5. Compt. rend. 1868, 66, 456; Bull. Soc. Chim. 1868, 9, 436; Ber. 1877, 10, 90; J. pharm. Chim. 1868, 7, 241; abst. Chem. Centr. 1868, 39, 616; Jahr. Chem. 1868, 21, 762. 6. Compt. rend. 1882, 94, 108; Ann.sci.nat. 1882. f6), 13, 353; abst. J. C. S. 1882, 42, 708; J. S. C. I. 1882, 1, 113; Bull. Soc. Chim. 1882, 37, 409; Jahr. Chem. 1882, 35, 1150. 7. Ber. 1875, 8, 476; Landw. Yersuchstat. 1876, 19, 164; abst. Bull. Soc. Chim. 1876, 25, 278; Chem. Centr. 1875, 46, 392; Chem. Tech. Rep. 1875, 14, I, 16; Dingl. Poly. 1875, 217, 235; Jahr. Chem. 1875, 28, 785; Wag. Jahr. 1875, 21, 1045; Jahr. rein Chem. 1875, 3, 382. 8. Ann. I866, 138, 1; Ann. Suppl. 1867, 5, 223; abst. Bull. Soc. Chim. 1866, (2), 6, 340; 1868, (2), 10, 295; Chem. Centr. 1866, 37, 401; 1868, 39, 395; Jahr. Chem. 1867, 20, 672, 738; Zts. Chem. 1868, 155, 245; J. Pharm. (4), 3, 478. Jahr. rein Chem. 1875, 3, 382. 9. Ber. 1875, 8, 575; abst. Bull. Soc. Chim. 1876, 25, 471 ; Jahr. Chem. 1875, 28, 822. A. Stutzer, D. R. P. 215273, 1908; Pap. Ztg. 1909, 34, 3758; abst. C. A. 1910, 4, 628; Chem. Zentr. 1909, 80, II, 1783; Chem. Ztg. Rep. 1909, 33, 600; Wag. Jahr. 1909, 55, I, 291. F. P. 402871, 1909; abst. J. S. C. I. 1909, 28, 1323. Des. Deut. Naturforscher und Aerzte Sept. 1909; abst. Zts. ang. Chem. 1909, 22, 1999; J. S. C. I. 1909, 28, 1162; Bull. Soc. Chem. 1910, (4), 6, 222; Jahr. Chem. 1909, 62, II, 387; Meyer Jahr. Chem. 1909, 19, 323. 10. J. prakt. Chem. 1880, (2), 21, 443 ; 22, 112; abst. Oest. Ung. W. u. Agr. Ztg. 11, 241 ; J. C. S. 1880, 38, 520; 1881, 40, 212; Bull. Soc. Chim. 1880, 34, 96; Ber. 1880, 13, 1142, 1759; Chem. Centr. 1880, 51, 358, 501; Chem. Tech. Rep. 1880, I, 19, 444; Chem. Ztg. 1880, 4, 488; Jahr. Chem. 1880, 33, 1063; Jahr. rein Chem. 1880,8,369; Wag. Jahr. 1880, 2S, 454; Zts. Chem. Grossgewerbe, 1860, 5, 119, 135, 151, 308. 11. Zts. physiol. Chem. 1883, 7, 523; abst. Ber. 1883, 16, 2508; Chem. Tech. Rep. 1883, 22, II, 144; Jahr. Chem. 1883, 36, 1363; Wag. Jahr. 1883, 29, 681; Tech. Chem. Jahr. 1883-1884, 6, 275; Zts. Deut. Spiritusfabr. 1883, 805. CELLULOSE 197 Mulder,1 F. Hoppe-Seyler,2 T. Thomsen,3 F. Koch,4 A. Ihl,5 M. Singer,6 and others7 previous to 1895. Notwithstanding the 1. Scheik. Onderzoek, 2, 76; abst. J. prakt. Chem. 1844, 32, 336; Ann. 1841, 39, 150. 2. Ber. 1871, 4, 15; abst. J. C. S. 1871, 24, 226; Chem. Centr. 1871. 42, 84; Jahr. Chem. 1871, 24, 476; Bull. Soc. Chim. 1871, 15, 98; Chem. News, 1871, 23, 131. See G. Foch, Chem. Ztg. 1913, 37, 1221. R. McKec, Paper, 1919, 25, 25, 34. 3. J. prakt. Chem. 1879, 127, 146; abst. Ind, Blatter 1879, 402; Arehiv. Pharm. 9, 557; J. C. S. 1879, 36, 613; J. S. C. I. 1883, 2, 89; Bull. .Soc. Chim. 1880, (2), 33, 494; Ber. 1879, 12, 1012; Chem. Centr. 1879, 50; Dingl. Poly. 1879, 233, 413; Jahr. Chem. 1879, 32, 896; Jahr. rein Chem. 1879, 7, 503; Wag. Jahr. 1879, 25, 1155. See also Scheibler, Ber. 1873, 6, 612; abst. Jahr. Chem. 1873, 26, 829. 4. Pharm. Zts. Russ. 25, 619, 635, 651, 667, 683, 699, 730, 747, 763; abst. Ber. 1887, 20, 145; Wag. Jahr. 1887, 33, 1. 5. Chem. Ztg. 1885, 9, 231, 451, 485; 1887, 11, 19; abst. Chem. News, 1885i 51, 114; J. C. S. 1885, 48, 694; 1887, 52, 534; J. S. C. I. 1887, 6, 306; Ber. 1885, 18, 128; 1887, 20, 77 R; Chem. Centr. 1885, 56, 761; Chem. Ind. 1888, 11, 188; Chem. Tech. Rep. 1885, 2*, I, 258; II, 17; 1887, 26, II, 329; Dingl. Poly. 1887, 266, 597; Jahr. Chem. 1887, 40, 2642; 1885, 38, 1977; 1886, 39, 1971.* See also H. Molisch, Monatsh. Chem. 1885, 7, 198; abst. Jahr. Chem. 1886, 39, 1971, 2172; Dingl. Poly. 1886, 261, 135. 6. Monatsh. 1882, 3, 396; abst. J. C. S. 1882, 42, 1122; J. S. C. 1. 1882, 1, 404; 1883, 2, 89; Ber. 1882, 15, 2272; Chem. Tech. Jahr. 1883, 22, I, 243; Chem. Ztg. 1882, 6, 603, 813; Wag. Jahr. 1882, 28, 1060; Akad. Wissensch. Wein, 1882, 100; Tech. Chem. Jahr. 1892-1893, 5, 212. 7. T. Seliwanoff, Ber. 1887, 20, 181; abst. J. C. S. 1887, 52, 459; Bull. Soc. Chim. 1887, (2), 48, 135; Ber. 1887, 20, 181; Chem. Ztg. 1887, 11, 1486; Jahr. Chem. 1887, 40, 2301; Landw. Ver.-Stat. 34, 414. See also Chem. Ztg. 1885, 9, 231. C. Wurster. Ber. 1887, 20, 808, 3195; abst. J. C. S. 1887. 52, 620; J. S. C. I. 1887, 6, 565; Chem. Ind. 1888, 11, 90; Chem. Tech. Rep. 1887, 26, I, 188; II, 350; Jahr. Chem. 1887, 40, 2467; Industriblatter, 1887, 119. E. Siegle, J. prakt. Chem. 1856, 69, 148; Poly. Centr. 1856, 22, 206; Wag. Jahr. 1856, 2, 225. Roy, Ann. Soc. Linn. Paris, 1826, 219; Jour. f. oeken Chem. 1, 215. Baer, Physikal. Lexicon, 1859, 6, 849; Wag. Jahr. 1859, 5, 401. Koerner, Diss. Dresden, 1907; Zts. ang. Chem. 1908, 21, 2353. Gottlieb, J. prakt. Chem. 1883, (2), 28, 385. Harpf, Pap. Ztg. 1891, 1845. Chudiakow, Landw. Jahr. 1894, 23, 391. Giltay and Anderson, Jahr. Wiss. Bot. 1894, 26, 543. Hansen, Medd. Carlsberg Labor. 1881, 2. Iwanowsky, Bot. Centr. 1894, 58, 344. Pederson, Pap. Ztg. 1890, 422. For data on obtaining ethyl alcohol from sulfite solution as in wood pulp manufacture, consult, E. Haegglund, Pulp Paper Mag. 15, 1125, 1157; E. Hendrick, Met. Chem. Eng. 1918; Papers Makers Monthly, 1918, 56, 136; Paper, 22, No. 4, p. 13. A. White and J. Rue, Paper Makers Monthly, 1917, 55, 109, 146; Met. Chem. Eng. 1917, 9, 182. G. Stlele, Worlds Paper Trade Rev. 66, No. 25, p. 12. E. Oman, Pap. Fab. 13, 534. V. Krieble, Paper, 23, No. 23, p. 153; Pulp Paper Mag. 17, 116. Paper Makers Monthly, 1918, 56, 136, 230, 235, 238, 359. Can. Chem. J. 2, 211. Paper, 21, No. 17, p. 16, 30; No. 18, p. 13; No. 19, p. 11; No. 20, p. 15. V. Krieble, Paper, Ann. Conv. No. 1919,23, 153; abst. J. S. C.I. 1919,38, 571-A F. Storer, Bull. Bussey Institution, 1900, 2, (9) ; abst. J. S. C. I. 1901, 20,822. G. Pradel, F. P. 385015, 1907; abst. J. S. C. I. 1908, 27, 516. G. Mezzadroli, Boll. Chim. Farm. 1918, 57, 360-62; abst. J. S. C. I. 1919, 38, 50-A. F. La Forge, U. S. P. 1288429, 1918; abst. J. S. C. I. 1919, 38, 154-A. R. Kocher, E. P. 107219, 1916 (appl. No. 7339 of 1916); abst. J. S. C. I. 1917, 36, 973. H. Landmark, First Addn. dated May 20, 1914 to F. P. 198 TECHNOLOGY OF CELLULOSE ESTERS extensive nature of this pioneer work, but little real progress had been made toward establishment of the data accumulated upon a firm commercial manufacturing basis. The most complete study of the saccharification of cellulose published up to that time is contained in a series of papers by E. Simonson in 1898,1 who embodied his results in a patent.2 He worked only on wood cellulose with the objective of the manufac ture of industrial ethyl alcohol,3 and found the most favorable conditions for the saccharification of 40 gm. of celluose to be a 2 hours digestion at 6-8 atmospheres pressure with 1080 cc. of 0.5% sulfuric acid, longer digestion causing a serious destruction of sugar. His results are epitomized in the following two tables, in which table 10 shows the amounts of (/-glucose formed with sul furic acid of varying concentrations after four hours treatment under the pressures stated: 456871, 1913. (J. S. C. I. 1913, 32, 1063); abst. J. S. C.' I. 1915. 34, 488. Chem.-Ztg. 1915, 39, 98-99; abst. J. S. C. I. 1915, 34, 275. F. P. 456871, 1913; abst. J. S. C. I. 1913, 32, 1063. T. Norton, U. S. Cons. Reps. Nov. 1911; abst. J. S. C. I. 1911, 30, 1466. F. Kressmann, J. I. E. C. 1915, 7, 920-923; abst. J. S. C. I. 1915, 34, 1221. J. I. E. C. 1914, 6, 625-630; abst. J. S. C. I. 1914, 33, 1914. Junien, Bull. Assoc. Chim. Sucr. 1914, 31, 500-501; abst. J. S. C. I. 1914, 33, 213. E. Hagglund, J. prakt. Chem. 1915, 91, 358-364; abst. J. S. C. I. 1915, 34, 975. 1. Zts. ang. Chem. 1898, 12, 195, 219, 962, 1007; 1903, 16, 572; Pap. Ztg. 1903, 28, 572, 1787; J. C. S. 1896, 70, i, 331; 1899, 76. i, 471; J. S. C. I. 1898, 17, 365, 481; 1898, 17, 1164; Chem. Centr. 1898, 69, I, 808; II, 144, 1140; Zts. ang. Chem. 1903, 16, 572. 2. D. R. P. 92079, 1894; abst. Chem. Centr. 1897, 68, II, 559; Wag. Jahr. 1897, 43, 978. E. P. 10762, 1895; Ber. 1897, 29, 1035; Chem. Centr. 1896, 670; Chem. Ztg. 1896, 20, 887; Pap. Ztg. 1896, 21, 460. Norsk teknisk Tidskrift, 1895,65. SceSwed. P. 28551, 1907. Zts. ang. Chem. 1898, 11, 219; abst. J. S. C. I. 1898, 17, 365, 481. See also Ann. 1819, 12, 172; Dingl. Poly. 1820, 1, 312; 1827, 25, 81; 1854, 134, 219, 316; 1856, 136, 187; 1855,138, 79, 80, 426; 1859, 151, 394; 1866, 181, 233; 1867, 185, 308; 1889, 273, 276; 1893, 287, 91. Wag. Jahr. 1855, 1, 200, 220; 1856, 2, 225, 242; 1859, 5, 40, 401. Zts. f. Spirit. Ind. 1883, (7). Lindsay, Inaug. Dissertation, 1891. 3. See "Cellulose as a Polysaccharide," J. Briggs, J. S. C. I. 1909, 28, 340; abst. C. A. 1909, 3, 1589; Bull. Soc. Chim. 1909, (4), 6, 1028; Rep. Chim. 1909, 9, 370; Chem. Zentr. 1909, 80, II, 270; Chem. Ztg. Rep. 1909, 33, 257, 313; Jahr. Chem. 1909, 62, II, 382; Meyer Jahr. Chem. 1909, 19, 217; Zts. ang. Chem. 1909, 22, 23(H). Lassar-Cohn, Allg. Produktenzeit. 8, 1; Chem. Zentr. 1918. 89, II, 778; C. A. 1919, 13, 3034. CELLULOSE 199 TABLE XVI.—CELLULOSE TO GLUCOSE. APtrmeossspuhreeriens Sulfuric Acid 0.15% 0.3% 0.45% 0.6% 1.3 2.5 2.7 3.1 2.1 6.6 8.6 10.6 2.7 9.3 11.3 12.6 4.0 16.4 30^7 20.3 6.0 2l'5 28.0 43.9 8.0 30.5 38.4 45.0 33.3 9.0 43.1 10.0 35.6 36.6 30.6 18.0 12.0 38.4 14.0 20.0 TABLE XVII.—CELLULOSE TO GLUCOSE (2.7 ATMS. PRESSURE) Hours Percentage of Sugar, with Sulfuric Acid of 864 011.912...3336% 0114315..5633% 01.526.06% 17.4 From the best of his experiments (an exceptional case), he claims to have obtained 45% of sugar and 44% of residue, which residue upon further treatment yielded 27% of sugar, but he docs not appear to have corroborated this experiment by duplicating the work. He was the first to determine the factors which influence the hydrolysis of cellulose, and these are (a) pressure, (b) amount of water present, (c) length of time for maximum sugar formation, and (d) correct acidity. On a semi-manufac turing scale he determined the most favorable conditions to be as follows: The cellulose in the form of fine sawdust is mixed with 0.5% sulfuric acid in the ratio of wood to liquid 1 to 4, and is heated in an autoclave for 15 minutes at a pressure of 9 atmospheres, the sugar being then extracted from the residue. The sugar was not separated as such, but used directly after neutralization for the production of alcohol by fermentation. Yields of alcohol equivalent to 25 gallons of absolute alcohol per ton of dry sawdust are stated to have been obtained. It is usual in the hydrolysis of cellulose with sulfuric acid on the industrial scale, not to recover 200 TECHNOLOGY OF CELLULOSE ESTERS as such the sugar formed, but to ferment it directly into ethyl alcohol, the conditions under which the hydrolysis is carried out, influencing of course, the nature of the sugar formed and the ulti mate yield of alcohol obtained. The results of Simonsen—admittedly the most reliablehave been called in question by Koerner,1 who has pointed out that Simonsen's yields of sugar were determined only by the cupric reducing power of the extracts, which is open to criticism. Furthermore Simonsen's extracts were not completely fermentable. Koerner, working along similar lines, obtained a yield of 12-18% of alcohol from wood cellulose corresponding to (say) 26% of dextrose. From "hydrocellulose" was obtained 18% alcohol, but the source of the hydrocellulose is not stated. Simonsen and Koerner conducted their researches, bearing in mind the utili tarian side of the question, and their work therefore, as has been pointed out by J. Briggs, lacks "the scientific value of a contri bution to the theory of the constitution of the cellulose aggregate." The yield of alcohol theoretically possible from 100 gm. dry cellu lose is 56.9 gm. and as under the most favorable conditions not over 25% of the theoretical quantity has been obtained by the simple hydrolysis of cellulose, it appears probable that of the entire cellulose complex, only a portion is capable of hydrolysis and conversion into fermentable sugar. Braconnot and many of his successors proceeded by employ ing sulfuric acid of such a concentration that its first action in the cold is one of solution due to esterification. A. Stern2 has 1. Ztg. ang. Chem. 1908, 21, 2353; Pap. Ztg. 1908, 33, 3702; C. A. 1909, 3, 484; J. S. C. I. 1908, 27, 1216; Bull. Soc. Chim. 1908, (4), 6, 230; Mon. Sci. 1909, 70, 326; Chem. Zentr. 1908, 79, II, 2049; Chem. Ztg. Rep. 1909, 32, 692; Jahr. Chem. 1905-1908, II, 179; Meyer Jahr. Chem. 1909, 18, 392; Wag. Jahr. 1909, 54, II, 339. See also h. Roth and W. Gentzen, D. R. P. 147844; abst. Zts. ang. Chem. 1903, 16, 244; Chem. Centr. 1904 , 75, I, 410; Jahr. Chem. 1904, 57, 878; Chem. Ztg. 1904, 28, 66; Wag. Jahr. 1904, 50, II. 370; Mon. Sci. 1909, 70, 327. See Aktiebolaget Ethyl, U. S. P. 1042332, 1050723, 1912. F. P. 446717, 446718, 1912; abst. J. S. C. I. 1912, 31, 1075; 1913, 32, 133, 192, 377. 2. Proc. Chem. Soc. 1894, 186; J. C. S. 1895, 67, 74; abst. J. S. C. I. 1894, 13, 1230; Bull. Soc. Chim. 1896, (3), 16, 1081; Ber. 1895, 28, R, 462; Jahr. Chem. 1895, 48, 1358; Meyer Jahr. Chem. 1895. 5, 145, 524; Chem. News, 1894 , 70, 267; Chem. Centr. 1895, 66, I, 29; Jahr. Chem. 1894, 47, 1132. Proc. ChL-m. Soc. 1904, 20, 43; J. C. S. 1904, 85, 336; abst. Chem. News, 1904, 89, 1 17; J. S. C. I. 1904, 23, 265; Bull. Soc. Chim. 1904, 32, 1175; Chem. Centr. 1904, 75, I, 934, 1405; Chem. Ztg. 1904, 28, 246; Jahr. Chem. 1904, 57, 1161. In this connection see Proc. Chem. Soc. 1904, 20, 90; J. C. S. CELLULOSE 201 pointed out that in this manner the acid-sulfuric esters of a series of dextrin-like bodies are formed which on prolonged boiling in presence of dilute sulfuric acid are gradually hydrolyzed to dextrose. Stern has fractionated these esters and determined the cupric reducing and specific rotatory power of each fraction, the series chemically being analogous to the maltodextrin series of starch products. The "cellulose sulfuric acids" of Stern are non-re ducing bodies, and the yields of barium cellulose sulfates from which all his deductions were made, never accounted for as much as half of the original cotton cellulose operated upon. J. Lindsey and B. Tollens1 isolated 3.5% of crystalline dextrose from wood cellulose by this method, and Ernest2 obtained about 4% of a dextrose syrup from ramie cellulose in the same manner. G. Eckstrom3 records a conversion of 55%-75% of dextrose by heating the cellulose in an autoclave for 0.5-5 hours at a pressure of from 3 to 8 atmospheres. In obtaining alcohol from waste sulfite 1904, 85, 691; abst. Chem. News, 1904, 89, 235; J. S. C. I. 1904, 23, 557; Bull. Soc. Chim. 1904, 32, 1301; Rep. Chim. 1904, 4, 293; Chem. Centr. 1904, 75, I, 1557; Jahr. Chem. 1904, 57, 1161. See also M. Hoenig and S. Schubert, Monats'i. 1885, 6, 708; 1886, 7, 455; abst. Wein. Akad. Ber. 92, (2 Abth.) 737; Bull. Soc. Chim. 1886, (2), 46, 517; Ber. 1885, 18, 614; Jahr. Chem. 1885, 38, 1576. Braconnot, Ann. Chim. Pnys. 1819, (2), 12, 185. Blondeau de Carolles, Ann. 1844, 52, 412; J. prakt. Chem. 1844, 33, 439. Fehling, Ann. 1845, 53, 135; Marchand, J. prakt. Chem. 1845, 35, 200. Bechamp, Ann. 1856, 100, 364. Allihn, J. prakt. Chem. 1880, 130, 61. 1. Ann. 1891, 267, 341; Ber. 1892, 25, 322; 154. Zts. ang. Chem. 1892, 5, 2. Zts. Zuckerind. 1906, 30, 270; abst. J. S. C. I. 1906, 25, 388; J. C. S. 1906, 90, i, 401; Rep. Chim. 1906, 6, 404; Ber. 1906, 39, 1947; Chem. Centr. 1906, 77, I, 1581; Chem. Ztg. 1906, 30, 155; Zts. ang. Chem. 1907, 20, 455; Jahr. Chem. 1905-1908, II, 958. H. Berger and A. Ernest, Ber. 1907, 40, 4671 ; abst. Wag. Jahr. 1907, 53, II, 230. See Stora Kopparbergs Bergslags Aktiebolag, F. P. 402331, 1909; abst. J. S. C. I. 1909, 28, 1221; Wochenbl. Papierfab. 1909, 40, 4265; Pap. Ztg. 1909, 43, 1682. 3. U. S. P. 970029. E. P. 18341, 1907; abst. J. S. C. I. 1908, 27, 514 ; 1910, 29, 1173; C. A. 1908, 2, 1642; Chem. Zentr. 1908, 79, I, 784; Chem. Ztg. Rep. 1908, 32, 42; Wag. Jahr. 1908, 54, II, 326; Zts. ang. Chem. 1908, 21, 1094. F. P. 380358, 1907; abst. J. S. C. I. 1908, 27, 32. Belg. P. 201746, 1907. U. S. P. 1035086, 1042332, 1046160, 1912; 1050723, 1913; 1087356. 1087743, 1087744, 1914; abst. J. S. C. I. 1912, 31, 912, 1075; 1913, 32, 103, 192;1914,33,349. E. P. 6741, 1910; abst. J. S. C. I. 1911, 30, 504. F. P. 402331, 1909; abst. J. S. C. I. 1909, 28, 1221. D. R. P. 193112, 1906; Chem. Zentr. 1908, 79, I, 784; 1909, I, 1296; Chem. Ztg. Rep. 1908, 32, 42; Jahr. Chem. 1905-1908, II, 861; 1909, 62, 344; 1910, 63, II, 419; Wag. Jahr. 1908, 54, II, 326; Ztg. ang. Chem. 1908, 21, 1094. D. R. P. 207354, 1907; Pap. Ztg. 1908, 33, 386; 1909, 34, 1682; 1910, 35, 649, 690, 2519; Chem. Ztg. 1909, 32, 182; 1910, 34, 223; Wochenbl. Papierf. 1910, 41, 638; Pap. Fab. 1910, 8, 238, 582; Svensk kemisk. Tidskrift 1909, Pt. 7; Zts. Chem. Ind. Koll. 1908, 3, 47; C. A. 1909, 3, 2070; Chem. Zentr. 1909, 80, I, 1296; Wag. Jahr. 1909, II, 55, 228; Zts. ang. Chem. 1909, 22, 599. 202 TECHNOLOGY OF CELLULOSE ESTERS lyes, he1 adds a catalyzer to the liquid before fermentation to oxidize the liquor, which is then aerated. H. Ost2 and with W. Wilkening3 first dissolve the cellulose in strong sulfuric acid of 65%-72% strength for a few hours at room temperature to change it into soluble dextrins, which are subse quently converted into dextrose by diluting the mixture with water until it contains 2%-3% H2SO4 and 0.2%-0.5%of cellulose and boiling for 5-8 hours; or for 2 hours in an autoclave at 120°. Whereas they compute that theoretically 100 gm. of water-free cellulose gives 111.1 gm. dextrose; in several instances they actu ally obtained 100 gm. Working along similar lines, only hydrolyzing with dilute sulfuric acid, R. Willstaetter and L. Zechmeister4 obtained 56%-83%. Hydrofluoric acid has been employed in the hydrolysis of proteins5 and cellulose6 (in the form of filter paper), using a lead vessel to carry out the reaction. It was found that HF up to 30% concentration had but little action, but with acid of 40%-50% I. Swcd. P. 34624, 1912; abst. C. A. 1914, 8, 1669. 2. Ber. 1913, 46, 2995; abst. J. C. S. 1913, 104, i, 1148; C. A. 1914, 8, 120; J. S. C. I. 1913, 32, 822, 1062; Bull. Soc. Chem. 1914, (4), 16, 95; Chem. Zentr. 1913, 84, II, 2035; Chem. Ztg. Rep. 1913, 37, 624. For the utilization of sisal waste in the production of alcohol, see Tropical Life, 1917, 13, 155; Bull. Agric. Intell. 1918, 9, 988; J. S. C. I. 1918, 37,677-A. Chem. Ztg. 1912, 36, 1099; abst. J. S. C. I. 1912, 31, 713, 980; Chcm. Ztg. Rep. 1913, 37, 68. Ann. 1913, 398, 313; abst. J. S. C. I. 1913, 32, 784; Bull. Soc. Chim. 1913, (4), 14, 1262. Willstaetter and Zcchmeister, Ber. 1913, 46, 2401; abst. Bull. Soc. Chim. 1913, (4), 14, 1354. Ost and Wilkening, Chem. Ztg. 1910, 34, 461; abst. Chem. Zentr. 1910, 81, I, 2074. 3. Chem. Ztg. 1910, 34, 461 ; abst. C. A. 1910, 4, 1888; J. S. C. I. 1910, 29, 688; J. C. S. 1910, 98, i, 364; Bull. Soc. Chim. 1911, (4), 10, 61; Chem. Zentr. 1910, 81, I, 2074; Jahr. Chem. 1910, 63, II, 420; Meyer Jahr. Chem. 1910, 20, 318; Wag. Jahr. 1910, 56, II, 392; Zts. ang. Chem. 1910, 23, R, 1534. See also, Flechsig, Zts. Physiol. Chem. 1883, 7, 913. 4. Ber. 1913, 46, 2401; abst. C. A. 1913, 7, 3413; J. C. S. 1913, 104, i, 955; J. S. C. I. 1913, 32, 822; Bull. Soc. Chim. 1913, (4), 14, 1354. Hydro chloric acid has been patented for purposes of cellulose hydrolysis as far back as D. R. P. 11836, 1880; abst. Wag. Jahr. 1881, 27, 818. 5. L. HuKouneng and A. Morel, J. pharm. chim. 1908, 99, 486; Compt. rend. 1908, 146, 1291; 147, 212; 1909, 148, 236; Bull. Soc. Chim. 1908, (4), 3, 612, 1146; abst. C. A. 1908, 2, 2397; 1909, 3, 662, 1039; J. S. C. I. 1908, 27, 764; Rev. Chim. 1908, 8, 409; Chem. Zentr. 1908, 79, II, 332; Jahr. Chem. 1905-1908, II, 4498, 4501; Meyer Jahr. Chem. 1908, 18, 236, 239. See also Compt. rend. 1906, 142, 1426. P. Schuetzenberger, Ann. Chim. Phys. 1879, (5), 16, 334. 6. J. Ville and W. Mestrezat, Compt. rend. 1910, 150, 783; abst. C. A. 1910, 4, 2094; J. C. S. 1910, 98, i, 301; J. S. C. I. 1910, 29, 483; Bull. Soc. Chim. 1910, (4), 7, 362, 1064; Rep. Chim. 1910, 10, 281; Chem. Zentr. 1910, 81, I, 1781; Jahr. Chem. 1910, 63, II, 419; Meyer Jahr. Chem. 1910, 20, 253, 318; J. d'Orlowsky, Belg. P. 226890, 1910. CELLULOSE 203 concentration action is more vigorous, and a rapid destruction of the cellulose soon sets in, the mixture assuming a brown color. With 50% acid concentration there is obtained an average of 41 gm. glucose per 100 gm. cellulose, when the process is carried on for 6 hours. They observe on heating glucose with 50% HF that the sugar is gradually destroyed and 53.5% of it disappears when the heating is continued for six hours. This observation may account for the relatively small yield of glucose obtained in the hydrolysis of cellulose as compared with the possible theoretical yield, on the assumption, of course, that the main product of hydrolysis is glucose. A. Ernest1 in hydrojyzing various cellulose materials such as ramie and cellulose from sugar beet, found only dextrose in the hydrolyzed product. On the other hand, on the assumption that all the sugar formed is dextrose, the conversion to alcohol in practice is small, and according to E. Hagglund,2 considerable amounts of pentoses may be found in the final product. A. Claessen3 has made an exhaustive technical study of this 1. Zts. Zuckcrind. 1906, 30, 270; abst. J. S. C. I. 1900, 25, 388; J. C. S. 1906, 90, i, 401; Rep. Chim. 1909, 6, 404; Ber. 1906, 39, 1947; Chem. Centr. 1906, 77, I, 1581 ; Ztg. ang. Chem. 1907, 20, 455. See also A. Ernest and H. Berger, Ber. 1907, 40, 4671; abst. Wag. Jahr. 1907, 53, II, 230. 2. J. prakt. Chem. 1915, 91, 358; abst. C. A. 1915, 9, 3127; J. C. S. 1915, 108, i, 629; J. S. C. I. 1915, 34, 883; Biol. Chem. Zts. 1915, 69, 181. 3. U. S. P. 700616, 1902; abst. J. S. C. I. 1902, 21, 867; Mon. Sei. 1902, 58, 190. U. S. P. 825808, 1906; abst. J. S. C. I. 1906, 25, 771; Chem. Zts. 1906, 5, 495; C. A. 1907, 1, 1 16; Mon. Sci. 1907, 67, 55. U. S. P. 696800. 1902; Re. 12108, 1903; abst. J. C. S. I. 1902, 21, 630; 1903, 22, 706; Mon. Sci. 1902, 58, 190. U. S. P. 654518, 1900; Re. 12069, 1902; abst. J. S. C. I. 1903, 22, 153; Chem. Ztg. 1900, 24, 693; Mon. Sci. 1902, 58, 13. U. S. P. 695795, 1902; abst. J. S. C. I. 1901, 20, 734; 1902, 21, 630; Mon. .Sci. 1902, 58, 190. U. S. P. 707903, 1902; abst. J. S. C. I. 1902, 21, 1190; Mon. Sci. 1903, 59, 111. U. S. P. 1101061, 1914; abst. J. S. C. I. 1914,33, 761. E. P. 258,259, 1900; abst. J. S. C. I. 1900, 19, 364, 1028. E. P. 4199, 1901, 20, 734. E. P. 12588, 1901; abst. J. S. C. I. 1910910,1 2; 0a,bst1.00J8.. S. EC.. PI.. 22709, 1905; abst. J. S. C. I. 1906, 25, 898. F. P. 365595, 1906; abst. C. A. 1907, 1, 2429; J. S. C. I. 1900, 25, 1000; Mon. Sci. 1907, 67, 99. F. P. 295847; abst. J. S. C. I. 1901, 20, 1008; 1902, 21, 358; Mon. Sci. 1901, 57, 41. F. P. 448496, 1912; abst. J. S. C. I. 1913, 32, 441. D. R. P. 111868, 1899; abst. Wag. Jahr. 1900, II, 288; Chem. Centr. 1900, II, 6O8; Chem. Ztg. 1900, 24, 524; Zts. ang. Chem. 1900, 13, 651 ; Jahr. Chem. 19(H), 53, 809. D. R. P. 118540, 1900; Wag. Jahr. 1901, II, 280; Chem. Ztg. 1901, 25, 252; Zts. ang. Chem. 1901, 14, 348; Jahr. Chem. 1901, 54, 844. D. R. P. 118542, 1900; Wag. Jahr. 1901, II, 281; Chem. Centr. 1901,1, 716; Chem. Ztg. 1901,25,249; Zts. ang. Chem. 1901, 14, 348. D. R. P. 118543, 19(H); Wag. Jahr. 1901, II, 282; Chem. Centr. 190C I, 716; Chem. Ztg. 1901, 25, 249; Zts. ang. Chem. 1901,14,349. D. R. P. 118544, 1900; Wag. Jahr. 1901, II, 282; Chem. Centr. 1901, 72, I, 716; Chem. Ztg. 1901, 25, 249; Zts. ang. Chem. 1901, 14, 349; Jahr. Chem. 1901, 54, 844. D. R. P. 121869, 1900; Wag. Jahr. 1901, U, 282; Chem. Ztg. 1901, 25, 571; 204 TECHNOLOGY OP CELLULOSE ESTERS problem, employing, in general, sulfur dioxide in the gaseous or liquid state as the hydrolyzing material. He uses also a mixture of 0.2% H2SO4 with 20% SO2 dissolved in water. The reaction is carried out in a current of air and the material heated to a temp erature of 120°- 145 "for one hour at a pressure of 6-7 atmospheres. When this process was attempted on an industrial scale many were the difficulties which were encountered, but it is of particular interest since it was the beginning of this industry in the United States for the production of ethyl alcohol from wood. In 1903 the United States patent rights for the Claessen process were acquired by a firm in Chicago, Illinois, and after experimentally demonstrating this process to its satisfaction, erected a plant at Hattiesburg, Miss, at a cost of about $250,000 to operate on long-leaf pine saw mill waste. This plant was substantially a failure because of the number of mechanical and technical diffi culties, the chief of which were as follows:1 (a) the length of time necessary to hydrolyze the wood was found to be 4-6 hours; (b) the large quantity of acid needed; (c) the action of the acid and water in the rotating digester reduced the wood to a very fine powder, and formed much sulfuric acid which acted upon the sugar and other substances present to form gums and caramels, and so made the complete extraction of the sugar from the residue both unduly tedious and expensive; (d) the digester was lead lined, and the buckling and breaking of the lining necessitated repairs after every two or three "cooks," which proved a great source of delay and expense. A. Claessen2 found technical difficulties in dealing with cellulose materials containing tannic and gallic acids, such as oak, chestnut, and in a lesser degree the poplar and beech. Gallic acid appears to be always formed on hydrolysis of these woods, which materially interferes during the subsequent fermentation of the sugars. The trouble was finally overcome by the addition Zts. ang. Chem. 1901, 14, 788. D. R. P. 123911, 1900; Wag. Jahr. 1901, II, 283; Chem. Centr. 1901, 72, II, 1032; Chem. Ztg. 1901, 25, 940; Zts. ang. Chem. 1901, 14, 1144. D. R. P. 161644; abst. J. S. C. I. 1905, 24, 1078; Wag. Jahr. 1905, II, 338; Chem. Centr. 1905, 76, II, 660; Chem. Ztg. 1905, 29, 772; Zts. ang. Chem. 1905. 18, 1567. Zts. Vcrein Zuekerind, 1900, 589; 1901, 348, 351, 754; 1907, 57, 206, 525; abst. Meyer Jahr. Chem. 1907, 17, 375, 376. Can. P. 77979, 81207, 84014. Belg. P. 139919, 1898; 142335, 1899. 1. Chem. Trade J. & Chem. Engr. 1918, 63, 231. 2. U. S. P. 825808, 1906; abst. J. S. C. I. 1906, 25, 771; C. A. 1907, 1, 16; Mon. Sci. 1907, 67, 55. CELLULOSE 205 of a ferric salt to the liquid after hydrolysis. In the French modification of the Claessen process,1 the by-products are said to have value as a cattle food. M. Ewen and G. Tomlinson2 who were associated with the Claessen process, began experimenting along new lines in order to remedy the defects of the Hattiesburg plant. Instead of using an aqueous solution of sulfur dioxide, they passed the gas into the digester along with steam, which furnished therefore, both the heat and moisture required. Somewhat later however, Ewen and Tomlinson abandoned the use of SO2 and were granted a patent3 covering the use of sulfuric acid as the catalytic agent. . This patent and the process patented by E. Simonson4 disclose a 1. F. P. 365595, 1906, abst. C. A. 1907, 1, 2429; J. S. C. I. 1906, 25, 1000; Mon. Sci. 1909, 67, 99. 2. U. S. P. 763472, 1904 ; abst. J. S. C. I. 1904, 23, 797. Belg. P. 220462, , 1909. F. P. 343006, 1904. abst. J. S. C. I. 1904, 23, 30073, 1912; abst. J. S. C. I. 1914, 33, 132, 156. U. S.7P9.7,1909342.440Et.oP1.0320405702, 1912; abst. J. S. C. I. 1912, 31, 832, 833. U. S. P. 938308, 1909; abst. Chem. Ztg. Rep. 1909, 659; Zts. ang. Chem. 1909, 22, 2462; Pap. Ztg. 1910, 35, 262; J. S. C. I. 1910, 29, 38; C. A. 1910, 4, 381. U. S. P. 1032391, 1032392, 1912; abst. J. S. C. I. 1912, 31, 762, 832; C. A. 1912, 6, 2863. F. P. 408229, 1909 ; abst. J. S. C. I. 1910, 29, 586. G. Tomlinson, "Wood Waste as a Source of Ethyl Alcohol," Chem. and Met. Eng. 1918, 19, 552; J. S. C. I. 1918, 37, 71 1-A ; 274-R. Orljavacer Chemische Fabrik, F. P. 357432, 1905; abst. J. S. C. I. 1906, 25, 117. J. d'Orlowski, F. P. 405187, 1909; abst. J. S. C. I. 1910, 29, 230. F. P. 343006, 1904 ; abst. J. S. C. I. 1 904, 23, 994. E. P. 10664, 1904 ; abst. J. S. C. I. 1905, 24, 808. R. McKee, U. S. P. 1273392, 1284739, 1284740; 1918; abst. J. S. C. I. 1918, 37, 600-A; 1919, 38, 71-A. E. P. 120520, 1918; abst. J. S. C. I. 1918, 37, 780-A. Paper, 1919, 24, 584; abst. C. A. 1919, 13, 1927. E. P. 24589, 1909; abst. J. S. C. I. 1910, 29, 710. G. Foth (Chem. Ztg. 1913, 37, 1145, 1221, 1297; Zts. Spirit. Ind. 1913, 36, 161, 485, 497, 595; Deut. Essigind. 17, 481; abst.'C. A. 1914, 8, 1343; Chem. Zentr. 1913, 84, II, 1831; Wag. Jahr. 1913, 59, II, 431; Zts. ang. Chem. 1913, 26, I, 519; II, 432), found 0.5% by weight of fusel oil in alcohol by this process, with only traces of methyl alcohol and no acetone. For the preparation of xylose from corn cobs, see C. Hudson and T. Harding, J. Am. Chem. Soc. 1917, 39, 1038; 1918, 40, 1601; abst. J. S. C. I. 1917, 36, 730; 1918, 37, 778-A. B. L'aForge and C. Hudson, J. Ind. Eng. Chem. 1918, 10, 925; J. S. C. I. 1919, 38, 86-A. K. Munroe, J. Am. Chem. Soc. 1919, 41, 1002; abst. J. S. C. I. 1919, 38, 550-A; C. A. 1919, 13, 2036. For production of alcohol from peat, refer to G. Pradel, E. P. 5128, 1907; J. S. C. I. 1908, 27, 416. 3. U. S. P. 938308, 1909; abst. J. S. C. I. 1910, 29, 38; Mon. Sci. 1910, 73, 87. F. P. 408299, 1909; abst. J. S. C. I. 1910, 29, 586. Can. P. 146794, 1913; abst. C. A. 1913, 7, 2137. 4. D. R. P. 92079, 1894; abst. Chem. Centr. 1897, 68, II, 559; Wag. Jahr. 1897, 43, 543, 978. In the T. Wagner process (U. S. P. 1261328, 1918; abst. J. S. C. I. 1918, 37, 410-A,) the fermented sugar-containing liquor resulting from the hydrolysis of ccllulosic material is concentrated, after the distillation of the alcohol, the concentrated product containing more than 30% of reducing sugars (calculated as dextrose) and approximately 25%-35% of water. See R. Ruttan, J. S. C. I. 1909, 28, 1290; abst. C. A. 1910, 4, 637; Chem. Zentr. 1910, 81, I, 1393; Zts. ang. Chem. 1910, 23, 860; Jahr. Chem. 1909, 206 TECHNOLOGY OF CELLULOSE ESTERS remarkable identity as to ideas. They erected a plant at George town, South Carolina for the demonstration of their process, which plant was later acquired by a powder company, and has been intermittently operated up to the present time.1 On an industrial scale, cellulose in the form of sawdust may be converted first to sugar and finally to alcohol in the following manner. Sawdust from several sawmills is brought by the aid 62, 99; Wag. Jahr. 1909, 55, II, 368; Chetn. Ztg. Rep. 1909, 33, 59. Comp. Industrielle des Alcools de l'Ardeche, F. P. 391057, 1908; E. P. 26619, 1908; abst. J. S. C. 1. 1908,27, 1126; 1909, 28, 998. F. P. 358696, 1905; abst. J. S. C. I. 1906, 25, 277. F. Gallagher and I. Pearl, Eighth Intl. Cong. Appl. Chem. 1912, 13, 147; J. S. C. I. 1912, 31, 870. H. Fenton, J. S. C. I. 1901, 20, 757. J. Teeple, J. Ind. Eng. Chem. 1913, 5, 680; abst. C. A. 1914, 8, 1665. R. Hauers and B. Tollens, Ber. 1903, 36, 3306; abst. Chem. Centr. 1903, 84, II, 1167; J. C. S. 1904, 86, i, 16; J. S. C. I. 1903, 22, 1151; Bull. Soc. Chim. 1904, (3), 32, 1104; Jahr. Chem. 1903, 56, 1011. R. Hauers, Dissertation, Gottingen 1902. J. Koenig, D. R. P. 265483; abst. Chem. Zentr. 1913, 84, II, 1535; Chem. Ztg. Rep. 1913, 37, 587; Wag. Jahr. 1913, 59, II, 348; Zts. ang. Chem. 1913, 26, 653. E. P. 8006, 1914; abst. J. S. C. I. 1915, 34, 901; C. A. 1916, 10, 75. V. Omelianski (Compt. rend. 1897,125, 1131; Arch. des Sc. biolog. 1900, 7, 411; Chem. Centr. 1900, 71, I, 918) in studying the prod ucts of the fermentation of cellulose, fermented pure paper in the presence of calcium carbonate at a temperature of about 35° for 13 months. The prod ucts obtained from 3.473 gm. of paper were: acetic series of acids, 2.24 gm.; CO2, 972 gm.; and hydrogen, 0.014 gm. The acids were chiefly acetic and butyric, with small quantities of valeric. Higher alcohols and odoriferous products were also formed but not isolated. No methane was detected. 1. Several years ago western capital erected a plant at Port Hadlock, Washington, on Puget Sound, for the production of ethyl alcohol and cattle food from sawdust obtained from mills at Seattle, Tacoma, Everett, Anacortes, and Port Blakeley. The plant was equipped with 6 digesters of the same size and type as those that were developed in France by the Compagnie Indus trielle des Alcohols de l'Ardeche. These digesters consist of steel cylinders, 21/2 m. in internal diam. by 21/s m. in length, through which are placed 22 tubes, 160 mm. in diam. The outside of each of a tube head has a flanged boiler steel jacket, one to receive the live steam from the boiler and the other to take off the condensed steam, the heating being indirect, the idea being to save steam by means of the indirect heating. Sawdust and enough water are added through a manhole into the space between the tubes to raise the moisture content to about 45%. Anhydrous sulfur dioxide was then added, and the mixture was cooked at 75-100 lbs. pressure. The cost of conversion was excessive because of the very rapid corrosion of the digesters, the long time necessary to heat indirectly, and because the sulfurous acid gas leaked from the digester into the stream space, thereby preventing the use of the low pressure steam. In addition, the extraction equipment was inefficient and out of date, though the buildings of the plant were excellent and expen sive, and much of the equipment was imported from France at a large cost. The extracted sawdust—which had only from 50%-60% of the sugar formed extracted from it—was mixed with Hawaiian molasses, and was put on the market as a cattle food. It was necessary to dry the extracted material down to about 12% moisture in order to prevent decay, and this caused trouble because of explosions of dust in the driers. In addition, the plant was situa ted about 80 miles from a railway, which greatly increased transportation charges. These facts coupled with the very poor design and equipment— CELLULOSE 207 of belts to a central factory, and is there distributed between several digesters in which the acid hydrolysis is to be carried out. These digesters are of a spherical shape 12 feet in diameter, with steel plate construction and lined with a special acid-resisting brick. After the digester has been charged with sawdust, sul furic acid is added until the acid constitutes about 0.5% to 1% on the wood, calculating on the dry weight. The vessel is then especially digester and extraction equipment—were no doubt the prime reasons which caused the failure of this plant. The alcohol company subsequently disposed of the Georgetown plant, and the company was reorganized, a considerable amount of foreign capital being introduced. A large plant for the production of 5,000 gallons of ethyl alcohol per day was erected at Fullcrton. At this plant from 2o%-28% of the anhydrous wood is rendered soluble, and of this amount 80% can be converted into fermentable sugar, though to accomplish this requires most careful control. It is likely that a greater percentage will be obtained by the use of dilute acids. For the present, therefore, a conversion yielding 20%-22% of fermentable sugars, or from 10%- 1 1 % of ethyl alcohol corresponding to a max imum of, say, 35 gallons of 95% alcohol per dry ton, represents the immediate goal. On a large scale the actual average yields have hardly exceeded half of this amount, so that there is a wide margin for improvement. An excellent description of the process and of the plant employed is • given in a paper on "By-Products of the Lumber Industry," issued by the U. S. Dept. of Commerce, from which the following details are taken. The sawdust is conveyed on a belt from several sawmills to the alcohol plant, and lifted into storage bins by means of an elevator. From the storage bin it is distributed to four digestors as required for charging. These digesters are of spherical shape, 12 ft. in diam. They are of steel-plate construction and are lined with acid proof brick. After a digester is charged with sawdust, diluted sulfuric acid is added until it constitutes about 0.5%-l% of the weight of the dried wood. The digestion is then slowly rotated by means of a worm gear by direct steam. The pressure gradually rises to 120 lbs. and a maximum temperature of 335° F. is reached. The total time of digestion, including charging, heating up, cooking, blow-off, and discharge, is about one hour. After complete digestion the digester is discharged, and the wood, now known as "hydrolyzcd" wood, is carried by belt conveyors to the diffusion batteries, in which the soluble constituents of the mass are extracted with hot water, in the same manner as in tannin-extract manufacture and in sugar extraction. The product of the digester contains more water than the raw material—which often contains 50% water—owing to the addition of the dilute sulfuric acid and to the condensation of steam used for the heating. After extraction the washed residue, consisting of unchanged sawdust, is conveyed to compressors, where the water contained is reduced to about 55%. It is afterwards burnt as fuel, and is sufficient for the generation of all the steam and power required in the plant. The liquor from the diffusion battery, known as wood liquor, contains sulfuric acid, sugar, and other organic compounds, and is next hydrolyzcd with milk of lime in tanks fitted with agitators. It then flows into a storage tank. It is further clarified by decantation, and after cooling is pumped into the fermenting vats. Yeast grown in wood liquor is added, after which fermen tation proceeds. The fermented liquor is then distilled in stills for the pro duction of rectified alcohol. The alcohol thus produced is of a high grade, and is reported to contain only traces of fusel oil, esters, and ethers. When properly purified, it differs in no respect from the ordinary grain alcohol. 208 TECHNOLOGY OP CELLULOSE ESTERS slowly rotated by means of a worm-gear while steam is used for heating, the maximum temperature reached being 120°. The time of charging, heating up, cooking, blowing off and discharing is about one hour. After the hydrolysis, the acid liquor con taining the sugar, is passed through diffusion batteries in order to • remove unchanged wood and to separate the soluble portion. The insoluble residue of practically unchanged sawdust is conveyed to hydraulic presses where its water content is reduced to 55% by pressure alone. The mother liquor from the diffusion batteries is neutralized with lime in tanks fitted with stirrers, it is further clarified by decantation and after cooling is pumped into fer mentation vessels. Yeast which has grown in wood liquor is added, and the fermentation allowed to proceed. The fermented liquor is finally distilled in column-stills for the production of concentrated alcohol. A. de Posnansky and L. Spassky1 first purify their cellulose material before attempting hydrolysis, and extract the material with dilute alkaline solution to remove resins and tannins. Next, in order to remove lignin, they heat with a dilute solution of calcium bisulfite for two hours and follow this by an acid treatment. The purified material is hydrolyzed with a dilute solution of hydrochloric, sulfuric or hydrofluoric acids, saccharification At the Fullerton plant it was estimated in 1913 that if a monthly capacity of 100,000 gallons had been reached, the cost would not have exceeded 21 cents per gallon, as against 30 cents, the cost of grain alcohol at American distil leries in 1913. But since the summer of 1916 the plant has been running continuously, taking advantage of the high prices ruling. The quality of the product at Fullerton was reported upon as one of the purest cologne spirits that had come under the observation of the analyst. If the cost of production should be higher than in 1913, then the fact that alcohol from either grain or molasses is more than double the price of that year, would still leave the advantage in favor of the product from wood waste. As the sugars used in wood alcohol can be used for feeding animals, as is done with cane molasses, there would seem to be great possibilities here. In the same paper a short account is also given of the manufacture of alcohol from sulfite liquor, in which similar reactions take place as those already described. This process has been introduced on a large scale in Sweden, ami at three paper mills in that country about a million and a quarter gallons of alcohol arc obtained per annum from sulfite liquor, and the process is also being worked in the United States. 1. L. Spassky, F. P. 451268, 1913; abst. J. S. C. I. 1913, 32, 620; C. A. 1913, 7, 3187; Mon. Sci. 1914, 81, 42. A. de Posnansky and L. Spassky, F. P. 459593, 1912; abst. J. S. C. I. 1913, 32, 1167; C. A. 1914, 8, 2637. Swiss P. 61410, 1912; 63563, 1913; abst. C. A. 1914,8,2276. A. de Posnansky, F. P. 464502, 468188; 473925, 1913; abst. J. S. C. I. 1914, 33, 497, 978; 1915, 34, 729; C. A. 1914, 8, 3215. CELLULOSE 209 being complete after three hours. The alkaline and bisulfite treatments as well as the acid hydrolysis are all carried out at 140°. The volatile acids present are removed by distillation under reduced pressure, the residual sugar solution being finally neu tralized and extracted with alcohol. F. Gallagher1 in hydrolyzing sawdust distils off any vola tile products present such as turpentine, in the first stages of the heating. He also allows the volatile products formed during the hydrolysis to escape continuously, or intermittently, while main taining the pressure. He claims to obtain by this procedure a greater yield of sugar and a liquid more suitable for the fermen tation process. The bisulfite treatment referred to above for removal of lignin and other compounds, gives a liquor containing small quantities of sugar. In the preparation of wood pulp for paper manufacture, an enormous quantity of these waste sulfite liquors are formed and many schemes have been suggested for their utilization.2 A preliminary treatment of crude cellulose materials by means of chlorine has been suggested.3 The cellulose, without washing, is digested with 1% of its weight of sulfuric acid for 30 minutes under a pressure of 9 kilograms. It has also been sug gested in the case of straw4 to heat under pressure with water. The solution obtained is employed for the extraction of a second quantity of straw. Each portion is extracted twice under pres- 1. U. S. P. 1056161, 1913; 1091327, 1914; abst. J. S. C. I. 1913, 32, 441; 1914, 33, 497. F. Gallagher and H. Mork, U. S. P. 1037185, 1056162, 1056163, 1913. E. P. 400, 14939, 1913; abst. J. S. C. I. 1913, 33, 441, 1166; 1914,33,801; C. A. 1912, 6, 3340. F. Gallagher and H. Mork, U. S. P. 1033064, 1912; abst. J. S. C. I. 1912, 31, 833. E. Gazagne and R. Demuth, F. P. 477077, 1914; abst. J. S. C. I. 1916, 35, 613. 2. H. Landmark, Chetn. Ztg. 1915, 39, 98; abst. J. S. C. I. 1915, 34, 275. A. Frohberg, Wochenbl. Papier-Fabr. 1913, 44, 4432; abst. J. S. C. I. 1913, 32, 1152. J. Koenig, J. Hasenbaeumer and M. Braun, Zts. ang. Chem. 1913, 26, 481 ; abst. J. S. C. I. 1913, 32, 939. Holzverkohlungs Indus trie A. G. Belg. P. 254945, 256353, 1913. 3. Standard Alcohol Co. U. S. P. 1032443, 1032444, 1032449, 1032450, 1033064, 1912; 1056162, 1913; 1096030, 1914; abst. Mon. Sci. 1914, 81, 139. F. P. 452920,452921, 453129, 460085, 1913; abst. J. S. C. I. 1912, 31, 833; 1913, 32, 441, 761, 833; 1914, 33, 37; C. A. 1914, 8, 3215. D. R. P. 279991, 1913; abst. C. A. 1915,9,2124. Aust. P. 71273, 1916; abst. C. A. 1916, 10, 2497. Swed. P. 41072, 1916; abst. C. A. 1916, 10, 2612. Norw. P. 27188, 1916; abst. C. A. 1916, 10, 3172. 4. W. Giles and F. Norris, U. S. P. 918997, 1909; abst. J. S. C. I. 1909, 28, 538; C. A. 1909, 2, 1795; Mon. Sci. 1909, 71, 142. 210 TECHNOLOGY OF CELLULOSE ESTERS sure, first with a solution from a previous extraction, and secondly with water. The united solutions are acidified, and when saccharification is complete, are neutralized and fermented. An important advance was made by R. Willstaetter and L. Zechmeister1 in 1913. They found that fuming hydrochloric acid of a specific gravity of 1.209-1.212 at 15°C., (containing 41% concentration of acid) was capable of hydrolyzing cellulose in the cold. One part of cellulose in the form of cotton was added to seven parts of concentrated hydrochloric acid. In a very short period the cotton had dissolved. When water was added to the solution after it had stood for a short period, the cellulose was precipitated quantitatively. If however, the concentrated solu tion of the cellulose be allowed to stand for two days and then diluted, no cellulose is precipitated, but instead an optically active solution is obtained. The solution, moreover, has strong reducing properties when tested with Fehling's solution. It is claimed dextrose is formed to the extent of 95%-96% of the possible theoretical conversion. The concentrated hydrochloric acid solution containing the dissolved cellulose is optically inactive at first, but after an hour, a slight rotation is observable. The rotatory power then gradually increases and becomes constant at the end of 24-48 hours, the actual number of hours depending on the concentration of the hydrochloric acid. The rotation figure does not increase regularly from zero to its maximum, but rises for the first few hours, then remains practically constant for a short period and finally increases again until the maximum is reached. These changes are interpreted on the assumption that an intermediate compound is formed at an early stage during the hydrolysis. According to these workers, cellulose in other forms such as filter paper, or pine wood, may also be hydrolyzed by very concen trated hydrochloric acid (specific gravity 1.2). In the case of pine wood a 30% residue of lignin substances is obtained. Con centrated hydriodic acid is less reactive, and with the latter heating is necessary in order to dissolve the cellulose. Hydrobromic acid (specific gravity 1.78), concentration (66%), behaves 1. Ber. 1913, 46, 2401; abst. J. S. C. I. 1913, 32, 822; J. C. S. 1913, 104, i, 955; C. A. 1913, 7, 3413; Bull. Soc. Chim. 1913, (4), 14, 1354; Chem. Zentr. 1913, 84, II, 1209. CELLULOSE 211 in a manner similar to hydrochloric acid (41%), the hydrobromic acid dissolving the cellulose even at 0°. With hydrofluoric acid of 70%-75% strength a similar action takes place. In view of R. Willstaetter and L. Zechmeister's work con cerning the action of concentrated hydrochloric acid on cellu lose in the cold, it is of interest to refer to H. Fenton's experi ments1 in which he treats cellulose (Swedish filter paper—50 gm.) with dry hydrogen chloride dissolved in an inert solvent (carbon tetrachloride). He obtains 3.1 gm. of chloromethylfurfural and 1.57 gm. of dextrose. According to Fen ton the two latter compounds are probably produced in equa-molccular pro portions initially, but part of the dextrose formed is destroyed during the heating. Similar reactions take place with hydrogen bromide. The formation of these halogen derivatives point to the presence of a ketohexose nucleus or grouping in the cellulose complex. R. Willstaetter and L. Zechmeister, in their hydrolysis with concentrated hydrochloric acid, identified their products solely by means of optical activity determinations and copper reduction figures. They did not, however, prove the quantitative yield to dextrose by actual isolation of the dextrose or a derivative of the sugar. H. Ost,2 regards their results, especially with the higher concentrations of cellulose, as improbable. According to M. Cunningham3 the products of hydrolysis of cellulose are not iden tified by the rotation constants of the hydrolyzed solution, and in support of this view adduces the following reasons. Widely different types of cellulose such as cotton and esparto-cellulose give identical optical rotation data on hydrolysis, but the ultimate products necessarily have divergent constituents. In addition, it is known that concentrated hydrochloric acid produces con stitutional changes even in the simple hexoscs—large fluctuations in optical activity accompanying slight variation in the strength 1. Proc. Chem. Soc. 1901, 17, 166; abst. J. S. C. I. 1901, 20, 757; Chem. News, 1901, 84, 7; Rep. Chim. 1901, 1, 515; Chem. Centr. 1901, 72, II, 405; Chem. Ztg. 1901, 25, .r>!)l ; Jahr. Chem. 1901, 54, 840. 2. Ber. 1913, 46, 2995; abst. J. C. S. 1913, 104, i, 1148; C. A. 1914, 8, 120; J. S. C. I. 1913, 32, 1062; Bull. Soc. Chim. 1914, (4), 16, 95; Chem. Zentr. 1913, 84, II, 2035; Chem. Ztg. Rep. 1913, 37, 624. Chem. Ztg. 1912, 36, 1099; abst. J. S. C. I. 1912, 31, 713, 980; Ann. 1913, 398, 313; J. S. C. I. 1913, 32, 784. 3. J. C. S. 1918, 113, 173; abst. C. A. 1918, 12, 1379; J. S. C. I. 1918, 37, 236-A; Ann. Rep. Soc. Chem. Ind. 1918, 3, 127, 149. 212 TECHNOLOGY OF CELLULOSE ESTERS of acid. Cellulose under the action of concentrated hydrochloric acid forms esters of polysaccharoses containing acidic hydroxyl groups. Cunningham failed to isolate dextrose F. Gallagher and I. Pearl1 have made a fsreormiestheofsoeluxtpieorni. ments on the hydrolysis of sawdust from long-leaf pine wood screened through a 10-mesh sieve. The proportion of sulfuric acid used was 1 per cent. of the dry weight of wood, the proportion of liquor was 3: 1, the maximum pressure was 135 lb. per sq. in., maintained for 30 minutes, and the total duration of the treatment was about 70 minutes. The digested material was extracted with water, evaporated to a density of 1.045 and fermented. Subsequent hydrolysis of the residue gave a further yield of fer mentable sugars. The following table illustrates some of the results obtained: TABLE VII —HYDROLYSIS OF PINE WOOD Fer mentable Sugars Ratio of Ferment able Sugars to total Extract BeCfeolrleulAofsteer Diges- Diges tion tion Material Total Ex tract Re ducing Ma terial Per Per Per Per Per Per ab.. LReosnigduleeaffrpoimne(sa)awdust. . . c2e2n.t0. c1e9n.t3. c1e1n.t8. c0e.n5t3. c5e4n.t0. c5e2n.t0. 6.3 4.7 3.0 0.47 52.0 42.0 2.8 1.7 1.6 0.57 , . d. Bleached cotton 3.1 1.6 1.4 0.44 gf.. BRleesaicdhuedfsroodma (wf)ood pulp . 17.7 16.0 6.3 0.3565 4.5 2.8 2.5 7.5 4.3 3.8 0 51 Other investigators who have contributed to this subject include Mitscherlich,2 Neumann,3 Voerkelius,4 G. Foth,5 R. v. 1. Eighth Intl. Cong. Appl. Chem. 1912, 13, 147; abst. J. S. C. I. 1912, 31, 870, C. A. 1912, 6, 3013. 2. D. R.P. 72161; abst. Mon. Sci. 1905, 63, 823; Ber. 1894, 27, 149; Wag. Jahr. 1893, 39, 1063; Zts. ang. Chem. 1893, 6, 732. U. S. P. 284319, 1883. 3. "Critical Study of the Hydrolysis of Cellulose from Wood." Diss. Dresden, 1910. 4. Wochenbl. Papierfabr. 1911, 42, 854; abst. C. A. 1911, 5, 2942; Chem. Ztg. Rep. 1911, 35, 852. 5. Chem. Ztg. 1913, 37, 1145, 1221, 1297; abst. C. A. 1914, 8, 1343; Chem. Zentr. 1913, 84, II, 1831; Wag. Jahr. 1913. 59, II, 431; Zts. ang. Chem. 1913, 26, I, 519; II, 432; Zts. Spirit. Iud. 1913, 36, 161, 485, 497, 595; Deut. Essigind. 17, 481. CELLULOSE 213 Demuth,1 C. Schwalbe and W. Schulz,2 Societe anonyme "Origo",3 H. Wallin,4 W. Cohoe,5 T. Koerner,6 F. Zimmer,7 H. Ruediger,8 W. Gentzen and L. Roth,9 and G. Zemplen.10 Patent protection for carrying these ideas into effect, have been granted to E. Bouchard- Praceiq, 11 A. Boernen,12 H. Bergstrom, 18 E. Tillberg,14 and others.15 === 1922 === 914hvzd7klyib4r1w59y10ukwgflu08 User talk:Hood.evans 3 370351 4668344 4594869 2026-09-03T14:32:39Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668344 wikitext text/x-wiki == Fangruida poems/Capriccio universe --- the world woke up == Capriccio universe --- the world woke up https://archive.org/details https://plus.google.com/110076668773318095495/.../ZidTtEaj [[https://commons.wikimedia.org/.../File:Fangruida.j.]] == <syntaxhighlight lang="asm"> Heading text </syntaxhighlight> * <big>Bulleted list item</big> Capriccio universe --- the world woke up<Fangruida poem>== Heading text == == 宇宙畅想曲---世界醒了 世界醉了 他却醒了 世界醒了 他却醉了 行走在空荡的旷野 眺望路色的山岗 行走在泥泞的田埂 倾听鸟儿的欢唱 行走在兰色的海滨 抚摩着轻轻的波浪 行走在城阔的花廊 蓝天白云漂浮远方 世界醉了 他却醒了 世界醒了 他却醉了 世界如此美丽 世界如此辉煌 世界的每一天 东方升起金色的太阳 自然如此美丽 自然如此辉煌 从地球到火星 遍地都是人类的希望 世界,美丽的星球已经苏醒了 人类的心灵却陶醉了 世界,美丽的星球已经醉了 人类的心灵却苏醒了 Capriccio universe --- the world woke up [[As in April 1987, the Swiss lakeside Neiwabodeng day, modern free verse] World drunk He woke up The world woke up He was drunk Walking in the empty wilderness Colored hills overlooking the road Walking in muddy ridge Listening to the birds singing Walking in blue seaside Waves gently stroked Walking in the city's flower-wide Blue sky and white clouds floating in the distance World drunk He woke up The world woke up He was drunk The world is so beautiful The world is so brilliant World every day Golden sun rises in the east Nature is so beautiful Nature is so brilliant From the Earth to Mars Everywhere the hope of mankind World, beautiful planet has been revived The human mind is intoxicated World, beautiful planet has drunk The human mind is revived univers Capriccio --- le monde est réveillé [[Comme en Avril 1987, la journée suisse au bord du lac Neiwabodeng, le vers libre moderne] Monde ivre Il se réveilla Le monde est réveillé Il était ivre Marcher dans le désert vide collines colorées donnant sur la route Marcher dans la crête boueuse En écoutant le chant des oiseaux Marcher en bord de mer bleue Waves caressa doucement Marcher dans la ville de fleurs à l'échelle Ciel bleu et nuages blancs flottant dans la distance Monde ivre Il se réveilla Le monde est réveillé Il était ivre Le monde est si beau Le monde est si brillante Monde tous les jours Or soleil se lève à l'est La nature est si belle La nature est si brillante De la Terre à Mars Partout, l'espoir de l'humanité Monde, belle planète a été relancé L'esprit humain est en état d'ébriété Monde, belle planète a bu L'esprit humain est relancé Каприччио Вселенная --- мир проснулся [[Как и в апреле 1987 года, на следующий день на берегу озера швейцарский Neiwabodeng, современный свободный стих] Мир пьян Он проснулся Мир проснулся Он был пьян Прогулка в пустой пустыне Цветные холмы с видом на дорогу Прогулка в мутной конька Слушая пение птиц Прогулка в синем море Волны мягко погладил Прогулка в городском масштабе цветок Голубое небо и белые облака, плавающие в расстоянии Мир пьян Он проснулся Мир проснулся Он был пьян Мир так прекрасен Мир настолько блестящий Мир каждый день Золотое солнце встает на востоке Природа так прекрасна Природа настолько блестящий С Земли на Марс Повсюду надежда человечества Мир, красивая планета была возобновлена Человеческий ум находится в состоянии опьянения Мир, красивая планета выпила Человеческий ум оживляется Capriccio Universum --- die Welt aufgewacht [[Wie im April 1987, dem Schweizer See Neiwabodeng Tag, modern freien Vers] Welt getrunken Er wachte auf Die Welt aufgewacht Er war betrunken Wandern in der leeren Wildnis Farbige Hügel Blick auf die Straße Wandern in schlammigen Grat Hören auf die Vögel singen Wandern im blauen Meer Wellen sanft streichelte Wandern in der Stadt Blumenweit Blauer Himmel und weiße Wolken in der Ferne schwebenden Welt getrunken Er wachte auf Die Welt aufgewacht Er war betrunken Die Welt ist so schön Die Welt ist so brillant Welt jeden Tag Goldene Sonne geht im Osten auf Die Natur ist so schön Die Natur ist so brillant Von der Erde zum Mars Überall ist die Hoffnung der Menschheit Welt, schönen Planeten wurde wiederbelebt Der menschliche Geist ist berauscht Welt, schönen Planeten hat getrunken Der menschliche Geist wird wiederbelebt カプリッチョ宇宙---世界が目を覚ましました [[1987年4月のように、スイスの湖畔Neiwabodeng日、近代的な自由詩] 世界酔っ 彼は目が覚めました 世界は目が覚めました 彼は酔っていました 空の荒野の中を歩きます 道路を見下ろす色の丘 泥だらけの尾根でウォーキング 鳥の歌を聴きます 青い海辺で散歩 波が静かに撫で 街の中を歩い花ワイド 青い空との距離に浮かんで白い雲 世界酔っ 彼は目が覚めました 世界は目が覚めました 彼は酔っていました 世界はとても美しいです 世界はとても素晴らしいです 世界毎日 ゴールデン太陽が東に上がります 自然はとても美しいです 自然はとても素晴らしいです 地球から火星へ 人類のどこでも希望 世界、美しい地球が復活されました 人間の心は酔っれます 世界、美しい地球が酔いました 人間の心を復活さ --- universo Capriccio el mundo se despertó [[Al igual que en abril de 1987, el día junto al lago suizo Neiwabodeng, moderno verso libre] Mundial borracho El desperto El mundo se despertó Estaba borracho Caminando en el desierto vacío color de las colinas con vistas a la carretera Caminar en la cresta barroso Escuchando el canto de aves Caminar en azul marino Olas acariciaban suavemente Caminar en la ciudad de flores por todo cielo azul y nubes blancas flotando en la distancia Mundial borracho El desperto El mundo se despertó Estaba borracho El mundo es tan hermoso El mundo es tan brillante Mundo cada día El sol de oro sale por el este La naturaleza es tan bella La naturaleza es tan brillante De la Tierra a Marte En todas partes la esperanza de la humanidad Mundo, hermoso planeta se ha reavivado La mente humana está intoxicado Mundo, hermoso planeta ha bebido La mente humana es revivida Capriccio universo --- il mondo si è svegliato [[Come nel mese di aprile 1987, il giorno svizzero lago Neiwabodeng, moderno verso libero] mondiale ubriaco Si svegliò Il mondo si è svegliato Era ubriaco Camminando nel deserto vuoto colline colorate che si affacciano sulla strada Walking in cresta fangoso Ascoltando il canto degli uccelli Walking in mare blu Onde accarezzò dolcemente Passeggiando nella città del fiore a livello Cielo blu e nuvole bianche galleggianti in lontananza mondiale ubriaco Si svegliò Il mondo si è svegliato Era ubriaco Il mondo è così bello Il mondo è così brillante Mondo ogni giorno Golden Sun sorge a est La natura è così bella La natura è così brillante Dalla Terra a Marte Ovunque la speranza del genere umano Mondiale, bellissimo pianeta è stata ripresa La mente umana è intossicato Mondiale, bellissimo pianeta ha bevuto La mente umana è ripreso == Fangruida record speech:Natural history of universe history // // // human history, world history --- Research Overview<Fangruida Record speech> == Natural history of universe history // // // human history, world history --- Research Overview<Fangruida Record speech> Natural history of universe history // // // human history, world history --- Research Overview<Fangruida Record speech> https://commons.wikimedia.org https://openlibrary.org/.../Fangruida_doctrine_fangruida-is. [http://www.changemakrs.com/fangruida/loved www.changemakrs.com/fangruida/loved] Chronology of World History (Natural universe, the earth, the human world, life) // New geological new astronomical - chronological universe Historical records and research according to the World, World History, the history of world civilization, chronicle world events, as well as natural history, earth history, history of the universe, geological history, biological history and the like. World History books have a lot of authority, the United States, Britain, Russia, Europe, middle country have similar universal history masterpiece. Scroll a few million words, it is worth intensive reading. Shanfanjiujian this article, a brief description of some of the problems, as superficial academic exchanges. Chronology of World History About 300,400 million years ago: humans appeared on earth. About 200,300 --1 million years ago: Palaeolithic humans. Chipped stone popular, has been the use of fire Collection industry, descent and family matriarchal commune produced.   BC 3 - 1 million years ago: the primitive religion appears. About 12,000 BC - 4000 BC: Stone Age humans. Invention and using a bow, fine stone widely used hunting industry. From about 8000 BC - Former 2000: mankind has entered the Neolithic Age. Popular burnishing stone, there have been primitive agriculture and animal husbandry . Matriarchal commune prosperity. 6000 BC: Asia Minor appeared linen and wool fabrics. Circa 6000 - 1000 BC: ancient Mesopotamia, Asia Minor, Greece, Rome, Persia, India and other places were primitive and ancient religions Teach prevalent. <See monograph: "Structural Anthropology" (1958,1973) • Claude Levi - Strauss with Structual Anthropology by Claude Lévi-Strauss "Social Anthropology" (1962) • Edward Evans - Pritchard forward Social Anthropology and Other Essays by E. E. Evans-Pritchard "Wild thinking" (1962) • Claude Levi - Strauss with The Savage Mind by Claude Lévi-Strauss "Tribal society of political, legal and ritual" (1965) • Max Gluckman of Politics, Law and Ritual in Tribal Society by Max Gluckman "Level Man" (1966) with Louis Dumont •>     BC 4000 - 3000 BC: Ancient Egypt, Southwest Asia, Southern Europe, Central Europe and China and other places have started to use copper ore. 3500 BC - 3100 years ago: in ancient Mesopotamia Uruk period. It appears pottery wheel pottery and ziggurat building, creating a cuneiform. Gouy And national (Nome) is formed. It appeared hieroglyphics. 3500 BC - 3000 BC: Ancient Mesopotamia residents began to use wheeled transport. The ancient Egyptians used in agriculture plow, harrow And fertilization. 3100 years ago: the rulers of ancient Egypt conquered Lower Egypt Menes, the initial formation of national unity. Egypt started the Early Dynastic Period. 3000 BC: Ancient Mesopotamia Sumerian city-state area appeared slavery. 3000 BC: Ancient Egyptian appear paddle and sail boats. The ancient Egyptians used bronze mirrors. Ancient Indians invented the stamp characters.   Before 2686 - before 2181: the Egyptian Old Kingdom. Complete national unity, large-scale construction of the pyramid. Before the 27th century: the heroic epic of ancient Mesopotamia Sumerian era of the "Epic of Gilgamesh" is formed. 26th century BC: the famous ancient Egyptian Sphinx completed. Europe appears knitting machine.   Chronology of World History "World History, World History." Long and complicated history of the world, some historical facts will inevitably have questions or inaccurate too, need to continue to identify and correct them later modified to restore the original appearance of history. About 300,400 million years ago: humans appeared on earth. About 200,300 --1 million years ago: Palaeolithic humans. Chipped stone popular, it has been the use of fire, late extensive use of bone, horn device. Hunting. Collection industry, descent and family matriarchal commune produced. About 170 million years ago: Yuanmou Yuanmou Chinese people living in this area, has been able to manufacture and use of stone tools.  {[(See World History, encyclopedias Stavros reason Oceanus: "Global History" McNeil "Rise of the West - the history of the human community" and "World History", as well as W · H.. McNeil's "World History" (1967), Stavrianos "global History" and so on.} 1 BC 3 - 1 million years ago: the primitive religion appears. About 12,000 BC - 4000 BC: Stone Age humans. Invention and using a bow, fine stone widely used hunting industry. From about 8000 BC - Former 2000: mankind has entered the Neolithic Age. Burnishing stone popular, there have been primitive agriculture and animal husbandry. . Matriarchal commune prosperity. 6000 BC: Asia Minor appeared linen and wool fabrics. Circa 6000 - 1000 BC: ancient Mesopotamia, Asia Minor, Greece, Rome, Persia, India and other places were primitive and ancient religions Teach prevalent. Circa 5000: Start with a cold forging method and processing of natural copper southwest Asia and Central Asia. Ancient Egypt has been used and other arms balance scale, the most known Weighing early. From about 5000 BC - Former 4000: In ancient Egypt, the sun and moon appear as regular calendar.   BC 4000 - 3000 BC: Ancient Egypt, Southwest Asia, Southern Europe, Central Europe and China and other places have started to use copper ore. 3760 years ago: the first year of the ancient Jewish calendar. 3500 BC - 3100 years ago: in ancient Mesopotamia Uruk period. It appears pottery wheel pottery and ziggurat building, creating a cuneiform. Gouy And national (Nome) is formed. It appeared hieroglyphics. 3500 BC - 3000 BC: Ancient Mesopotamia residents began to use wheeled transport. The ancient Egyptians used in agriculture plow, harrow And fertilization.  {5ooo BC before} Before 2686 - before 2181: the Egyptian Old Kingdom. Complete national unity, large-scale construction of the pyramid.   26th century BC: the famous ancient Egyptian Sphinx completed. 2,500 years ago: the ancient Sumerian Medicine found that mineral water has healing properties, the ancient Sumerians used oil lamps, learn to bake bread and brew beer liqueur. Europe appears knitting machine. Circa 2500 - 1500 BC: Xiyaguya said period Before the 25th century - before the 23 century: in Ancient Babylonians invention of pottery carved on the map. Before 2378 - before 2371: the ancient Sumerian king of Lagash Urukagina reign, Before 2371 - before 2154: the ancient Mesopotamian Akkadian Kingdom. From about 2300 BC - Former 1750: Ancient Indian Harappa culture period. Before 2181 - before 2040: First Intermediate Period of Ancient Egypt. Before 2017 - before 1595: the era of ancient Mesopotamia Ancient Babylon Before 2000: - Aegean Mycenaean civilization appears. Ancient Egypt appear library, mummification. Before 1900-- before 1600: the ancient Greek text appears linear, bronze widely used. <See Philosophy of History: An Introduction to the philosophy of history, the history of world civilization, this scroll World History and other historical masterpiece> Walsh (William H.Walsh, 1913-1986), British philosopher> Before 1792 - before 1750: Ancient Mesopotamia Ancient Babylon 6th generation reign of King Hammurabi, will be "Code of Hammurabi" Before 1786 - before 1567: the Second Intermediate Period of ancient Egypt. Hyksos invasion of Egypt ruled over a hundred years. Before the 18th century: ancient Babylon occurred farmers almanac, including irrigation, cultivation and harvesting, as the earliest known farmers almanac.   Before 1567 - before 1085: New Kingdom of ancient Egypt. The ancient Babylonians created a well-developed mathematics and astronomy. Horses start for vehicle transport. UK Salisbury and Wiltshire areas built Build Stonehenge. Ancient Egyptians used mercury. About 14 centuries ago: Chinese Pan Geng moved to Yin from Om generate Oracle. The first 14 - Former 12th century: the ancient Hittite Empire in West Asia. The mid-14th century BC - 11th century ago: the ancient Xiyaguya said Empire. About 13 centuries ago: Chinese Shang bronzes heyday. Late Shang Si Mu Wu Ding is the largest remaining bronze. Former 11-- 9th century BC: the ancient Greek Homeric.    1000 BC - Former 600 years: The ancient Indian Vedic period. Aryan state formation, Brahmanism spread. 10th century - 612 years ago: the ancient Assyrian West New Empire. Iron appeared and widely used. Top 10 - Top 5 Century: Ancient Indian earliest philosophical writings, Brahmanism classic "Upanishads" formation. 841 years ago 9 century ago: the ancient Greek Sparta state formation. 8th century: the ancient Greek epic "Iliad", "Odyssey" is formed, transfer to Homer. Pergamum invented parchment people in the Middle East.   Ancient Greek first Olympic Games held in Olympia.   BC 700 - 600 years ago: the ancient Phoenicians with suet and mountain ash into soap. Before 8 - 6th century BC: the Roman monarchy era. Before 626 BC - 539 years: the ancient Mesopotamia the Neo-Babylonian Kingdom. Before 624 BC - 547 years: the ancient Greek philosopher Thales alive, the creation of Miletus school.   Before 610 BC - 546 years: the ancient Greek philosopher Anaximander alive. About 7 centuries ago: the Babylonians found eclipses recurring Saros. Before 604 BC - 561 years: the ancient Mesopotamia the Neo-Babylonian king Nebuchadnezzar II reign, the construction of the Hanging Gardens, destroy the Jewish state. 594 years ago: the ancient Greek Athenian Solon implement political and economic reform, issued the "Code of Attica." From about 580 BC - 500 years ago: the ancient Greek mathematician and philosopher Pythagoras was alive, the creation of the Pythagoreans.   About 563 years ago - 483 years ago: Sakyamuni, founder of Buddhism alive. Before 558 BC - 330 years: the ancient Persian Empire and West Asia. 551 BC - 479 BC: Confucius alive, the creation of the Confucian school of thought, the first private school, presided over the compilation of ancient culture finishing. Existing "The Analects " . About the first 500-- 449 years ago: Persian War. Before 485 BC - 425 years: the ancient Greek historian Herodotus alive. Before 469 BC - 399 years: the ancient Greek philosopher Socrates alive. Before about 460 BC - 401 years: the ancient Greek historian Thucydides alive, author of "History of the Peloponnesian War." About the first 460-- 370 years ago: the ancient Greek philosopher Democritus alive. 432 years ago: the ancient Greek Parthenon, built by the sculptor Phidias decorative design. Former 431-- 404 years ago: the occurrence of the Peloponnesian War. World military history. Before 427 BC - 348 years / 347 years ago: the ancient Greek philosopher Plato alive. Before 334 BC - 324 years: the Macedonian king Alexander the Great led his army conquests of Persia, Central Asia and India, travel thousands of miles, the world's ancient history The famous military expedition. <See World Military Yearbook and other versions of books>. Before 330 BC - 275 years: the ancient Greek mathematician Euclid alive, the "Geometry." 323 BC - 187 years ago: the ancient Indian kingdom of Magadha Mauryan period.   4th century BC - AD 3,4 century: the ancient Indian epic "Mahabharata" is formed.   Before 287 BC - 212 years: the ancient Greek mathematician and physicist Archimedes alive. About 280 years ago: the ancient port city of Alexandria, Egypt built the Pharos lighthouse, one of the seven wonders of the ancient world. About 269 years ago - 232 years ago: the ancient Indian kingdom of Magadha Mauryan king Ashoka reign of the Mauryan entered its peak phase. 7 years ago or four years ago: According to legend, the founder of the birth of Jesus Christ. 1st century: Greek sculptor Ndiaye Sandra Ross, Nuoduoluosi, 波利佐罗斯 three carved marble statue of "Laocoon." 1st century AD the Roman Empire began 395 years of Christianity 476 years of the Roman Empire split Early 7th century Frankish kingdom established 622 years of the rise of Islam 676 Japanese Taika Reforms begin 8 mid-century Silla unified the Korean Peninsula most In the early 9th century Arab empire become 843 formed the Kingdom of the English. Charlie is not the 12th century division of the empire, France, Germany, and Italy produce prototype Japan entered the 14-16 century during the reign of the Shogunate 1453 Renaissance in Europe 1453 Byzantine Empire 1492 Dias voyage along the southern coast of Africa 1497--1498, Columbus reached America / Columbus discovered the New World 1519-1522 Voyage Vasco da Gama India 1640 Magellan sailed round the world fleet 1688 English bourgeois revolution began 1760s British coup, the new bourgeoisie and the establishment of the rule of Guizhou 1775--1783 British industrial revolution began July 4, 1776 North American War of Independence North American Continental Congress issued a "Declaration of Independence", the United States declared independence Power 1785 Watt improved the steam engine is made to start a textile machine used / technological revolution, industrial 1848--1849 European revolution 1861 Russian serfdom reform 1861 --1865 US Civil War Japan's Meiji Restoration began in 1868 Finalize the unification of Italy in 1870 1871 completed the unification of Germany, the German Empire was established   1939.9 Second World War broke out 1 1943.12.1, the United States, Britain issued the Cairo Declaration << >> The United Nations established 1945.10    The former Soviet Union. 1993 establishing the European Union <Stavrianos masterpiece of World History, the history of world civilization, the World Encyclopedia, Encyclopedia Britannica, Wikipedia and other former Soviet Academy of Sciences Editor: World History, "World History" is the 2000 People's Publishing society published books, the author is Cui Lianzhong. "World History" sub antiquity, the Middle Ages, the modern times, under modern, modern, contemporary six volumes, the history began in primitive society and ends in early 1996. We have high academic and historical research value.>     World History events Create ancient Egyptian civilization Old Babylonian kingdom "Code of Hammurabi" development Trojan War Solon Darius Battle Battle of Marathon The birth of Ancient Greek Philosophy / human history, cultural heritage, European civilization / Olympic Games / World Sports Events [Many major events in world history, important people, it is difficult to accurately include all of them. There are various versions of the General History of the World, it is difficult consensus.] Rise and Fall of the Roman Empire Establishment and spread of Christianity "Justinian Code" handed down Germanic peoples migration Founding and demise of the Mayan civilization Collisions of European civilization The collapse of the Byzantine Empire The rise of the Ottoman Empire Hundred Years War Renaissance Shakespeare Drama Creation Opening of new routes The European Reformation Copernicus presented heliocentric Newton discovered gravity English bourgeois revolution Faraday invention motor Enlightenment Reform of Peter I / Russia The first industrial revolution American Revolutionary The French Revolution The rise and fall of Napoleon Latin American War of Independence 1848 European Revolution Darwin's Theory of Evolution the Meiji Reform The establishment of the first international second industrial revolution Telephone and radio technology invention Wright brothers and the birth of the aircraft Birth car Krstic invention Train World War I Establishment of an international coalition Einstein theory of relativity Second World War The former Soviet Union / the end of the Cold War. The establishment of the United Nations New Changes in the third technological revolution the international political and economic new pattern of new trends Modern society / world economy and world politics / World Military / World Culture / World Religion / World Population, etc. Globalization - new opportunities, new challenges, new world and evolution Man on the moon / cosmic revolution, the revolutionary planet, the planet began to society {{ "The Outline of History" (English) Hz with Joe Wells. "The Outline of History: Biological and concise history of mankind" (English) Hz with Joe Wells.   "History of Western civilization," [US] · E · Robert Lerner waited. This is a very influential book in North America, three co-historian. The former Soviet Academy of Sciences Editor: World History <scroll>   "World history of civilization," [US] Philip Lee Ralph waited. 4 co-historian.     "World history of civilization," the Weierdulan. An amazing work. }} Appears cloning / modern biological technology Create ancient Egyptian civilization Old Babylonian kingdom Trojan War Solon Darius Battle Battle of Marathon Establishment and spread of Christianity "Justinian Code" handed down Germanic peoples migration Founding and demise of the Mayan civilization The collapse of the Byzantine Empire The rise of the Ottoman Empire Hundred Years War Renaissance Opening of new routes The European Reformation Copernicus presented heliocentric Newton discovered gravity English bourgeois revolution NYSE / capitalist development Faraday invention motor Reform of Peter I The first industrial revolution American Revolutionary The French Revolution The rise and fall of Napoleon 1848 European Revolution Darwin's Theory of Evolution Telephone and radio technology invention {{Main part of world history events, individual controversial history of the world can be found in general history, world history and civilization classics Encyclopedia of network resources, the world's three encyclopedia}}. Third technological revolution After the Cold War new world-changing. Competitive countries in the world, the rapid development of modern science and technology productivity. Genetic engineering, aerospace engineering, computer and information network engineering, materials engineering, energy engineering, mechatronics, biomedical engineering, agricultural engineering, intelligent robotics, marine technology, military engineering and technology applied to human society greatly. Competition and conflict in various new challenges, new conflicts, civilization, religion, nationality, culture, etc. followed, the world order is facing change and innovation, a serious challenge to the consolidation and development of the turmoil in the world order - Transformation ago Row. Humans - primates Primates - physiological characteristics {evolutionary / biological human primate evolution, comparative study} Primates primate skull In primates inhabit trees common features, there are many differences. Including the holding force needed collarbone in the chest ribs, all angles to ensure freedom of movement of the shoulder, in front of the fingers, nails, touch sensitive finger (toe) end, the tendency smell degradation, the number of teeth is relatively degraded, complex visual system (visual sensitivity and color sense), and trunk disproportionate brain, the cerebral cortex expanded pairs of mammary gland, a common child, a longer gestation period and the like. Usually highly social primates, and there is hierarchy. Pliocene period began monogamous primates, and form a stable patriarchal society. Primate head has two eyes forward: This binocular can provide an accurate sense of distance. There are towering above the orbital brow. There is a huge dome on primate skull - skull, which was unusual in its class. Skull protects the brain following the same difference. Human cranial cavity volume (space inside the skull) than non-human primates should be three times the largest cranial cavity, which show that humans have larger brains. The average human cranial volume is 1201 cubic centimeters, while gorillas are 469 cm3, 400 cm3 chimps, orangutans is 397 cubic centimeters. The primary direction of primate evolution is the brain, especially the neocortex. According to anthropologists and geneticists concluded that the evolution and mutation of the human brain in a few tens of thousand years after <few hundred thousand years after the brain is more large cranial volume and cerebral cortex, cerebellum, and central sulcus back and other parts function> part of evolution, part may be degraded. to genetic variation, mutation, cells, enzymes, proteins and the like. Primates generally have five toes on each forelimb (finger), the end of each toe has horny toenails. Hand, foot and toes very sensitive skin, constitute a well-developed sense of touch systems. Most primates are suitable for the thumb grip objects (opposable thumbs), which is characterized by iconic primates, but not unique. For example opossum there so fingers. For primates, such as finger nails is accompanied by short walk between the ancient trees of the product. Many methods thus developed upper limb walking out. Primate of all ring-shaped neck sternum very obvious Snout primates (lower jaw) showed shrinking trend. Technically speaking, the Old World and New World monkeys distinction lies in the structure of the nose, and the difference between the Old World monkeys and apes in the arrangement of the teeth. New World monkeys nostrils facing side, and old world monkeys are toward the lower nostril. Primates with a variety of teeth arranged manner. Hominid molar tip (the last tip) is in the early history of primates evolved, and this corresponds to the original lower molars tip (lower front tip) will disappear. Prosimians has its unique fixed upper lip, wet nose and lower front teeth inward. Primate evolution and vision compared to most mammals was unusual. Primate ancestors developed trichromatic vision (can see three colors function), and nocturnal animals, warm-blooded animals and other mammals in the dinosaur ancestors of the period is lost in one third of the retinal cones. Movement primates varied and useful arms, feet, jumping, arboreal, and walk on all fours on land, knuckles and other reptiles. Many of the original monkeys suborder animals vertical jumping and attached to trees, shrubs, including many monkeys, all indri. Humans are the only primates to fully upright. Female migration system - born females leave the group. Male remained in the original population, while females and the collective is not closely linked. Male exchange system - females remain in the original group and the males in adulthood Relocate. Allow polygamy society will fall into this category. Such social groups usually slightly larger, common in the ring-tailed lemurs, capuchin monkeys. Monogamy - a male and a female stable structure, sometimes accompanied by heirs. Family care and social services (such as territorial defense) the work is divided into two sides. Parents will leave the territory after adult children. Such a society is more typical gibbon groups. However, where monogamy is not faithful representation of life. Lonely type (for female) - together with the male will protect their territory, and which will include several female areas of activity. Such structures are found in apes. Primates Primate slower growth than other mammals. In addition to humans, primates cubs all rely on breastfeeding transfer of nutrients by the mother to protect, guide and support. Some species are also males, particularly his father, in charge of children's activities and safety. Other family members. <[World History / Introduction to the history of the universe (Kant)> encyclopedia site Wikipedia, Encyclopedia Britannica, Encyclopedia Americana and other information sites.]> Primate mammals than the same size has a longer childhood (from weaning to sexual maturity). These are usually playing in knowledge gained. Later brought to maturity with the same size primate mammal compared to a longer life. And the average female life expectancy is longer than males. Primate food source is very extensive. Most primates eat fruits, in order to absorb the digestible carbohydrates and fats for energy. However, other primates also need food, such as leaves or insects, for amino acids, vitamins and minerals (trace elements). Baboon is the only major herbivorous primates. Tarsiers are the most carnivorous primates - eats insects, reptiles, and other animals. {Advanced intelligent life in the current scientific findings in humans with only other similar microbes in extreme environments - Extreme Life may find other planets or large in the universe, however, similar primate mammals in the visible Earth, the moon. Jupiter, Mars may not have even within the scope of these and other higher organisms. even if there had probably already extinct. As for whether within a larger universe, of course, can not all negative, however, there is the possibility, but not too much. extremophiles or other extreme life have then the possibility of a slightly larger universe in the development of change, extreme extreme biological life will produce and perish. everything is developing and changing universe, astrophysics, particle, expressing various forms of expression of life forms also is full of development and change.}. Cosmic history summary table: Temperature (K) Energy (eV) time (s) during physical Times 1032102810-44 Planck era 1028102410-35 grand unified era 10-35, -33 soaring inflation stage process 101310910-6 hadron era 101110710-2 lepton era <generation of particles, the particles into play>. 10,101,061 neutrino neutrino decoupling decoupling 5 × 109 5 × 105 5 electron annihilation of electron-positron pairs 1,091,053 points nucleosynthesis era of light nuclides generated 400 million years of the formation of the first stars, reionization Galaxies, large scale structure formation 2.725 3 × 10-4 137 billion years Modern <[See related masterpiece "On the system of the universe," Laplace. "A Brief History of the Universe" (A Brief History of Universe) is a British physicist Stephen Hawking (Stephen Hawking). A Brief History of the Galaxy author (US) Timo · West Ferris (Timothy Ferris). A Short History of Nearly everything (Bill Bryson]>. A brief history of the Earth's geology: for reference only, can be found in the relevant research monograph, the World Encyclopedia, Encyclopedia Britannica, Encyclopedia Americana, Wikipedia, Wikipedia and other websites on behalf of strata, representatives of the International Geological years. Archean (AR, Archean Eon): about 4.567 billion to 25 billion years ago Eoarchean (Ar0, Eoarchean Era): about 4.567 billion to 36 billion years ago Paleoarchean (Ar1, Paleoarchean Era): about 3.6 billion to 32 billion years ago The Archean (Ar2, Mesoarchean Era): about 32 billion to 2.8 billion years ago Neoarchean (Ar3, Neoarchean Era): about 28 billion to 2.5 billion years ago Proterozoic (PT, Proterozoic Eon): about 25 billion to 543 million years ago Paleoproterozoic (Pt1, Paleoproterozoic Era): about 2.5 billion to 18 billion years ago Before Hutuo discipline: about 2.5 billion to 23 billion years ago Hutuo Ji (Ht): about 23 billion to 1.8 billion years ago <Refer to the "Principles of Geology" Lyell, etc.> Mesoproterozoic (Pt2, Mesoproterozoic Era): about 1.8 billion to 10 billion years ago Great Wall century (Ch): about 1.8 billion to 14 billion years ago Early Great Wall World (Ch1): Late Great Wall World (Ch2): Jixianian (Jx): about 1.4 billion to 10 billion years ago Early Jixian World (Jx1): Late Jixian World (Jx2): Neoproterozoic (Pt3, Neoproterozoic Era): about 10 billion to 543 million years ago Qingbaikou (Qb): from about 10 million to 800 million years ago / tonian (Tonian Period): about 10 billion to 850 million years ago Early Qingbaikou World (Qb1): Late Qingbaikou World (Qb2): Nanhua (Nh): about 800 million to 6.8 billion years ago / Cryogenian (Cryogenian Period): about 850 million to 6.3 billion years ago Early Nanhua World (Nh1): Nanhua Night World (Nh2): Sinian (Z): about 6.8 billion to 543 million years ago / Ediacaran [Ediacaran Period, also known as the Neoproterozoic record Ⅲ (Neoproterozoic)]: about 635 million ~ 542 million years ago Early Sinian (Z1): Late Sinian (Z2): Phanerozoic (PH, Phanerozoic Eon): about 543 million years ago - the future Paleozoic (Pz, Paleozoic Era): about 543 million to 2.5 billion years ago Early Paleozoic: about 542 million ~ 416 million years ago Cambrian (∈, Cambrian Period): about 543 million to 4.9 billion years ago Early Cambrian The Cambrian Late Cambrian Ordovician (O, Ordovician Period): about 4.9 billion to 438 million years ago (say about 488 300 000 - 443 700 000 years ago) Early Ordovician (O1): Middle Ordovician (O2): Late Ordovician (O3): Silurian (S, Silurian Period): about 438 million to 4.1 billion years ago Early Silurian (S1): Middle Silurian (S2): Late Silurian (S3): Top Silurian (S4): Late Paleozoic: about 416 million ~ 251 million years ago Devonian (D, Devonian Period): 4.1 billion to 354 million years ago Early Devonian Middle Devonian Late Devonian Carboniferous (C, Carboniferous Period): about 354 million to 2.95 million years ago Early Carboniferous (C1): Late Carboniferous (C2): Permian (P, Permian Period): about 295 million to 2.5 billion years ago Early Permian (P1): Middle Permian (P2): Late Permian (P3): Mesozoic (Mz, Mesozoic Era): about 2.5 million to 65.95 million years ago Triassic (T, Triassic Period): about 2.5 billion to 205 million years ago Early Triassic (T1): Middle Triassic (T2): Late Triassic (T3): geochronology / stratigraphic division Jurassic (J, Jurassic Period): about 205 million ~ 137 million years ago Early Jurassic (J1): Middle Jurassic (J2): Late Jurassic (J3): Cretaceous (K, Cretaceous Period): about 137 million years ago ~ 65,950,000 Early Cretaceous (K1): Late Cretaceous (K2): Cenozoic (Cz, Cenozoic Era): approximately 65.95 million years ago - the future Paleogene (E, Paleogene Period): about 6,500 million to 23.3 million years ago Paleocene (E1): approximately 65.95 million - 55.8 million years ago Eocene (E2): about 55.8 million - 33.9 million years ago Oligocene (E3): about 33.9 million - 23.3 million Neogene (N, Neogene Period): about 23.3 million to 260 million years ago. Miocene (N1): about 23.3 million to 530 million years ago Pliocene (N2): about 530 million to 2.6 million years ago Quaternary (Q): about 260 million years ago - the future Pleistocene (Qp): about 2.6 million to 1.15 million years ago Holocene (Qb): about 1.15 million years ago - 1808 Anthropocene (Anthropocene epoch): about 1808 - Future In the study of evolutionary history or geological processes on Earth, and sometimes do not necessarily need to know the exact time of geological events, but only needs to know the order between them, the only method of determining the sequence of geological events called relative geological time Geological age and is closely related to human evolution. Geologic Time Scale: << [Reference Reading >> light-years, a great span .1 trillion trillion years in 1oo years equal to .1 trillion light years ----- hundred light years distance traveled. astronomical. <international geologic> Encyclopedia of network resources. Encyclopedia Britannica, Encyclopedia Americana, Encyclopedia of life, Wikipedia and other geological]. " . Implicit Phanerozoic: Archean (Ar): 45 million years ago, lasted for 2.1 billion years. Proterozoic (Pt): 24 million years ago, lasted for 1.83 billion years. Phanerozoic: Paleozoic (Pz): Cambrian (∈): 5.7 billion years ago, lasted for 70 trillion years. Ordovician (O): 5 million years ago, lasted for 60 trillion years. Silurian (S): 4.4 billion years ago, lasted for 40 trillion years. Devonian (D): 4 billion years ago, lasted for 50 trillion years. Carboniferous (C): 3.5 billion years ago, lasted for 65 trillion years. Permian (P): 2.85 billion years ago, lasted for 55 trillion years. Mesozoic (Mz): Triassic (T): 2.3 billion years ago, lasted for 35 trillion years. Jurassic (J): 1.95 billion years ago, lasted for 58 trillion years. Cretaceous (K): 1.37 billion years ago, lasted for 70 trillion years. Cenozoic (Kz): Tertiary (R): 67 trillion years ago, lasted 64.5 trillion years. Paleocene: 65 trillion years ago for 9 trillion years. Eocene: 56 trillion years ago, for 21 trillion years. Oligocene: 35 trillion years ago, for 12 trillion years. Miocene: 23 trillion years ago, for 18 trillion years. Pliocene: 5 trillion years ago, continued 3.4 trillion years. Quaternary (Q): 2.5 trillion years ago for 2.5 trillion years. Pleistocene: 1.6 trillion years ago, continued 1.59 trillion years. Holocene: 10,000 years ago. All accounts, a variety of opinions, strengths reference reading is not conclusive. Geological time scale (refer to reading) <Quoted from geologic, encyclopedia Web site, geological history and other information sites.> Implicit Phanerozoic: Ancient offerings: 4.5 billion (some say 4.6 billion) to 38 billion years ago, 700 million years duration. Archean (Ar): 38 billion to 2.7 billion years ago for 11 million years. Proterozoic (Pt): Early: 2.7 billion to 18 billion years ago, 900 million years duration. Interim: Changcheng Period: 18 billion to 1.4 billion years ago, for 4 billion years. Jixianian: 1.4 billion to 10 billion years ago, for 4 billion years. Late: Qingbaikou: 10 million to 800 million years ago, the last 2 million years. Sinian (Z): 8 million to 570 million years ago, 230 million years duration. Wende Generation: 610 million to 6 million years ago, for 1 million years. Phanerozoic: Paleozoic (Pz): Early: Cambrian (∈): 5.7 billion to 510 million years ago, for six million years. Anomalocaris. Ordovician (O): 5.1 billion to 439 million years ago, continued 71 trillion years. Great Ordovician radiation (GOBE, occurred in Phanerozoic evolution of a major biological event). Orthoceras. The first mass extinction: 438 million years ago Silurian (S): 4.39 billion to 408 million years ago, continued 31 trillion years. Pterygotus. Late: Devonian (D): 4.08 million to 362.5 million years ago, continued 45.5 trillion years. Dunkleosteus. The second mass extinction: 3.6 billion years ago Carboniferous (C): 3.625 billion to 290 million years ago, continued 72.5 trillion years. Giant spiders. Permian (P): 2.9 billion to 245 million years ago, for 45 trillion years. Dimetrodon. The third mass extinction: 245 million years ago, the number of more than 70%, 97% of species. Trilobites extinct. Mesozoic (Mz): Triassic (T): <astronomical> Early: Yin Duan Order: 2.5 million to 245 million years ago, for 5 trillion years. order: 2.45 billion to 242 million years ago, for 3 trillion years. {{See [US] • James Preston with, geographical thought history,  [English] R.J. Johnston of geography and geographers}} << Over geologic reference only read the study geology and the history of geological ages especially important and difficult. As archaeological research in geology, archaeological history, archaeological anthropology, archeology astronomy, complex and difficult. To restore the historical and real the study of natural history picture, the early history of the universe image, the image of human evolution, biological evolution image, is no trivial matter, ancient geology ancient geography paleontological exploration requires a lot of work for a long time and empirical verification instructions. Therefore, the data here is for Thinking experts refer necessarily become conclusive. stratigraphy, paleontology, geology, ancient, ancient anthropology and other disciplines in close connection with other disciplines, for example, astronomy, cosmology, microbiology, astrophysics, astrophysics geology , celestial chemistry, astrophysics geology, geography and other celestial bodies, otherwise, inevitably biased. for example, the geology of the moon, Mars geology research and discovery. Finally, in order to compare identification, contour sort things out for Geology History should be so divided. >>. AD 2,050- year 2, 100-year {according to the development of modern science and technology, the modern world economy, politics, military, religion, culture, education, resources, environment, ecology, population and so many data, rely on electronic computing model, rough analysis of historical development trends in context, focusing on human society and the whole world history evolution and developments, events, etc., but also a variety of scientific and technological research Advances according to generally study the changes in the natural, historical process of the universe and significant nature, and the universe mutations, etc. the main macro situation, roughly evolution situation, not microscopic scene from the time data, the reference data are also large, and the rest can be used as supplementary information. Therefore, the time span is very inconsistent.} [Humans into Mars and return safely to Earth. Moon base, Mars base began preliminary work. Marine rapid technological breakthroughs, the development of the Polar breakthrough. Slow growth in the world economy, changes in the world situation changes. <Climate change, active seismic activity. Polar change. Resource use.> Human population growth, resources and environment has deteriorated. Reform of the United Nations / United Nations Special Representative of the Army / Secretary-General of the United Nations / United Nations permanent and non-permanent / United Nations International Tribunal / United Nations presences States intensified competition, war occasionally occur. Various conflict-prone world pattern of gradual change, the new industrial revolution, technological revolution gaining momentum. AD 21oo - AD 22oo years The new mode of production Slow world economic growth, after the strong boost Planet revolution, the development of increasingly powerful universe, moon base, Mars base gradually established. Polar development, ocean development, utilization or modification desert, mountain use Increasingly powerful technological development, extension of human life, to overcome incurable diseases When the nuclear threat of nuclear terrorism is still enveloped the world in some areas and hot spots of conflict have occurred, the individual fighting frequently. The industrial revolution, agricultural revolution substantial progress, national wrestling competition Increasing integration of the world, the world changes ASDC preliminary molding Resource crisis, population growth, conflicts, local wars and danger Enhanced role of the UN and rights. Enlarge the role of regional organizations of the United Nations to further strengthen the role of Major issues of peace and security, economic development and human rights. AD 23oo - AD 25oo years Accelerate the integration of all aspects of the world / world politics / world economy / World Military / World Religions / World Science and Technology / world culture. National competition and uneven development, different, may go hand in hand, it may lead, lead the world, can not be generalized. New world, a new world order / US., Russia, India, Europe, Japan, Argentina and other developing countries, appearing in a multi-polar unipolar lead unipolar or multi-pole to keep in hand, like a track and field race , long-distance running, sprinting, sprint, as runner-up or tied, but eventually there will still be a leader in the leading pack, leading the world. this hegemony in the traditional sense is significantly different. Revolution Universe AD AD 2,500- 3,000 years {post-industrial era. Intelligent modern industry, modern agriculture, a big step forward. The situation in the world tend to be stable, easing Human society initially entered the planet. Moon man, Mars and other interstellar humanity. The new economic structure economy / Economy - wisdom, and increasing social economic productivity, production tools, mode of production, relations of production, production resources. Increased competition in the world. There are occasional conflicts and war. When changes occur naturally universe, the earth, the moon is obvious. Earth's natural disasters is more common. Two pole exploitation. Moon person / Mars / Earth Year 3,000 AD 5,000 years {human society entered the era of artificial intelligence, alien immigrants transformation shape. Mankind enters the moons of Jupiter and other planets. Human detectors flying the solar system. 5th, 2000 --- AD 8,000 years <human into a high intelligence community. Earth, moon, Mars and other planets, will celebrate Earth population. Human economic structure, social structure, political structure, cultural structure, religious structures thinking structure, physical and mental structure will be significant changes, heredity and variation.> Earth society will also be significant changes and transformation. AD 8, 2000 - 12th, 2000 / symbol year from now 2, ooo years -1o, ooo years as a symbol of the Earth {the revolution, the revolutionary planet, the universe will completely change the world revolution} Super wisdom of the ages, super intelligence community came into being. AD 15, 000 - AD 20, 2000 <Humanity, the earth, the evolution of the planet people.> Wisdom biological robots appear. Universe and change the planet. Human activity detector probe into the Milky Way and other galaxies. Humanity into other celestial bodies. Highly intelligent life is found, but a similar extreme microbes. Planet touch state social model. [Change the planet, the solar system change. Planet Earth and human survival in severe challenges and risks intensify. AD 30, 000 - AD 50, 000 years {.. Human beings live on Earth, the Moon and Mars and other celestial bodies, planets society is gradually forming} planet survival technology gradually develop and grow, including Earth, Moon, Mars and the solar system are all in change, the planet of the world. survival and development more difficult and dangerous. Changes in the universe. Planets and social crisis facing the challenges of changing times Earth's humanity, the Earth revolution. AD 100, 000 - AD ******* years / 1oo, ooo years as a sign of macroeconomic data are used to study them, which is more in line closer to the natural and human history of the real world and the evolution of evolution trajectory image jump. empt a conclusion, clearly contrary to the true face of historical development, misleading and distorted the history and natural history of the world history of the universe. AD 15o, ooo years ---- 2oo, ooo years AD 3oo, ooo years --1, ooo, ooo-year history {Annals, 1oo years as a major landmark in. AD 1,5oo, ooo years --- 2, ooo, ooo years New geological new astronomical - chronological universe ........... ********** ********* ----- Other omitted from the year 2ooo years ---- 2 ooo, ooo years, the time span has been great, too great astronomical, so far after the fact without connection, the length of the history of the human history of the universe has enough new geological new astronomy - universe chronology, abbreviation:.. new geological new astronomical - chronological universe / NNACU. <Mutation nature of the universe, the Earth and endanger other planets. Planets and other parts of the universe, explosion. Part of human destruction or extinction, celestial hazards, biological extinction inevitable dangers and disasters threaten mankind. Humans to survive and continue to continue to survive in the planet and the universe. Planet survival techniques developed. <Universe changes and natural hazards, diverse, compared to a variety of disasters to human society hundreds of millions of times stronger human society can survive, whether planet or perish disintegration, explosion, collapse, these are extremely important problems. so, problem solution natural history of the universe changes, or mutations, this is the key. even if mankind enters Mars, the moon, is also facing these life and death problems. (1) Natural Yu Zhou whether the overall collapse and collapse? (2) whether humans have enough wisdom and ability to escape this unscathed (3) the destruction of the universe is inevitable or necessarily has its chance, including (4) remains the most critical are:?.? the destruction of the universe as a whole or partial destruction, what will matter Ukraine has evolved into what? everything is emptiness. If this theory was established, the inevitable demise of mankind and the universe. In other words, human history will end naturally, will declare the demise of the universe. Should the universe there is no overall destruction and collapse, human life or other life will there are likely to survive. this is the article with particular emphasis on the two major propositions. scientific research and scientific reasoning is sometimes very important, but in the end still needs a lot of verifiable data and the like. A. nothingness. B. heat death of the universe theory: Heat Death Theory and cosmic contraction theory is opposed to, in this case, gravity is not strong, you can not go beyond the expansion of the universe appears therefore exponential expansion, heat evenly distributed in the universe is cold, dark TLC, the final will be an all-star by one end perish. C. Vacuum metastability event: Event metastable vacuum exists in the universe is a basic unstable state, the universe we live in a stable edge to swing. Some scientists say the reasoning, the next few billion years, the universe will be at the edge of subversion, then at some point the bubble universe.       D. On the death of a black hole in the universe most substances are surrounded by a black hole, the galaxy is concerned, it contains a variety of stars in its center there is a supermassive black hole. When the stars fall into the black hole or the galaxy "event boundary", they will be disintegrated, in a finite universe, black holes will eventually engulf most of the material, the final residue of a dark universe. E. cosmic cycle: the traditional view that the universe is eternal existence, in the big bang singularity theory of the universe starting model, the universe is cyclical, it will be permanently sustained expansion and contraction. F. cosmic contraction theory: The most prominent theory of how the universe is the Big Bang theory of the beginning, at first only singularities all substances present in the form, which is an infinitely dense point, for some reason after the explosion, it is difficult to outward confidence speed expansion, culminating in today's universe. On the large contraction and the big bang theory contrary, gravity will eventually slow the universe's expansion, stagnation and contraction.   "Kepler's third law: T2 / R3 = K (= 4π2 / GM) {R: radius of the orbit, T: cycle, K: constant (nothing to do with the planet's mass, depending on the quality of the central object)} The law of gravity: F = Gm1m2 / r2 (G = 6.67 × 10-11N • m2 / kg2, directions on their connection) Gravity and gravitational acceleration celestial bodies: GMm / R2 = mg; g = GM / R2 {R: celestial body radius (m), M: celestial body mass (kg)} 4. satellites orbiting velocity, angular velocity, period: V = (GM / r) 1/2; ω = (GM / r3) 1/2; 1/2 {M T = 2π (r3 / GM): the central body mass }. " 1. Dark energy is too large, too little dark matter, cosmic expansion rate is too large, continue to accelerate the expansion and eventually unlimited expansion. 2 dark energy and gravity of various substances in the universe was flat, the universe will continue to slow down the expansion, the expansion rate will be closer to zero, but can never reach zero. 3 less dark energy, gravity dominates the expansion of the universe will continue to slow down, then stop the expansion, contraction steering, all matter in the universe ultimately shrink back into a point, and start all over.   In the first model (ie, closed universe), the expansion of the universe was sufficiently slowly that the gravitational difference between galaxies in the expansion slows down and eventually make it stop. Then start close to each galaxy, the universe began to shrink. the first sort In the second model (open space), the expansion of the universe was so fast that gravity make it slow although some never could make it stop. Nearby galaxies distance versus time. Distance to zero at the beginning of the last galaxies steady speed away from each other; In the second type is always expanded model, additional space is curved, like a saddle. Therefore, in this case space is infinite. Finally, there is a third class of solutions, expansion of the universe is just fast enough to avoid collapsing. Distance galaxies started from zero, always increases. However, although the speed of the galaxy apart will never become zero, this speed is getting slower. In the third category Friedmann model just the critical rate of expansion, space is flat (it is unlimited). Theoretical physicist noted, human or gradually decay into radiation, after its own collapse completely disappeared, or because the faster expansion of the universe to collapse. According to Big Rip theory, dark energy will make the structure of the universe distorted, leading to the first galaxies tear, followed by a smaller black holes, planets and stars. Expansion of the universe is growing drag force, once it reaches more than galaxies gather Another possible way to the end of the universe is called the "big contraction." If the substance within the universe declining over time, there will be a large contraction, resulting gravitational forces become dominant. Gravitational contraction of the universe leads to the result that stars, galaxies and planets collide with each other, the universe collapse occurred. Theoretical physicist, said some areas within the universe has begun to collapse, the collapse of the universe will eventually devour its According to Higgs theory, the phase change in ten billion of a second after the Big Bang occurred, resulting in changes in the structure of space-time.  Newtonian cosmology: 1 was observed at any point in the universe, the center of the universe were symmetrical 2 the same time measuring the universe points, density are equal 3 little universe in any other conduct particle measurements relations About the structure of the universe are: Gaitian said: day round as cover sheets, places such as chess game. Ancient Greek and Roman doctrine of original universe Water is the origin of the universe - Thales The outermost layer of the universe is never extinguished Skyfire said - Pythagoras Multilayer crystal ball says - Aristotle Earth is the center - Ptolemy Western medieval universe theory After the Middle Ages, cosmology was included in the scholastic system, know the late Renaissance Copernicus based on astronomical observations long write "heavenly bodies" presented heliocentric. Bruno is further believed that the sun is not the center of the universe, the universe is infinite, there is no center. The classic model of the universe Newton's first classical mechanics and Euclidean geometry concepts to establish a system of absolute infinite universe. Relativistic cosmological model Einstein November 1915 published a general theory of relativity, space and time can not be pointed out substance alone, they established a limited boundless four-dimensional model of the universe. Big Bang Theory Model The expansion 20 years later, due to the cosmic microwave background radiation was confirmed, together with the further development of nuclear physics, the Big Bang model shine, to be recognized by the standard model of the universe. String theory models of the universe Gradually developed in the last century, superstring theory, at another point to establish a more esoteric string theory models of the universe, we proposed the concept model of the universe of 11 dimensions. 1, on a closed space model of the universe, we need to understand a closed space. A closed space from any point of view, do not turn to it, all will return to the same place, the same as rotate about a point. 2, a closed space model of the universe Closed space universe model rule is half closed space of all symmetric point directional movement at the same rate, the move does not coincide with any two points, and keep symmetry. Now is the "big bang model of the universe" is called the standard model of the universe. In addition are non-standard cosmological model of the universe model. Such as: steady state model of the universe, the universe cycle model, film universe, the mirror universe. . . and many more.       A theory, also known as the Big Bang cosmology. Compared with other models of the universe, it could indicate more observational facts. Its main point is that we think the universe had a period from hot to cold in the course of evolution. Einstein field equations: R_uv-1/2 * R * g_uv = κ * T_uv (Rμν- (1/2) gμνR = 8GπTμν / (c * c * c * c) -gμν) Description: g_uv to metric, κ is a coefficient, can be slow to determine the Newtonian theory. "_" After the letter subscript "^" after the letter as superscript. Meaning: matter energy space - momentum (T_uv) = distribution bends space (R_uv) Form solution is: ds ^ 2 = Adt ^ 2 + Bdr ^ 2 + Cdθ ^ 2 + Ddφ ^ 2 Wherein A, B, C, D for the metric g_uv components. Consider the energy - momentum tensor T_uv solution is more complex. The easiest is to make T_uv equal to 0, 2. The field equations contain the cosmological constant term: R_uv-1/2 * R * g_uv + Λ * g_uv = κ * T_uv Here Λ is the cosmological constant, which is the physical meaning of the universe vacuum field. Λ * g_uv the cosmological term. If from ds ^ 2 = Adt ^ 2 + Bdr ^ 2 + Cdθ ^ 2 + Ddφ ^ 2 [1] Wherein A, B, C, D for the metric g_uv components. Here ds is the expression of the degree of bending of space a short distance. If understood in the physical sense, then, the universe items to the right-hand side, it is: R_uv-1/2 * R * g_uv = κ * T_uv-Λ * g_uv In 1929, American astronomer Hubble Hubble's law is proposed from the galaxy redshift galaxies and proportional, In the expansion of the universe away from each other, he said. State when the distribution of matter in the universe imbalance, the local structure of matter will continue to expand and contract changes, but the relative balance between the overall structure of the universe will not change. In 1994, the Carnegie Institute of Friedman et al., With an estimated age of the universe when calculating the rate of expansion of the universe approach, the calculated values ​​obtained the age of 80 to 12 billion a year. However, according to the analysis of stellar spectra, the oldest stars in the universe age of 140 to 160 million years. Wonderful spiral is the nature of the most common and most basic form of exercise substances. This spiral shape phenomenon for the understanding of the universe has an important role in enlightening, to a large spiral galaxy, small DNA molecules are produced in such a spiral line. Nature does not recognize straight form nature all the basic structure of matter are annular shape of the curve of movement. From atoms and molecules to planets, galaxies until galaxies, superclusters, without exception, no doubt, the vastness of the universe is a big whirlpool. Therefore, the establishment of a "spiral movement patterns of the universe model" Origin of the universe About whether the universe and how to initiate the debate throughout the history of the entire record. Basically there are two schools of thought. Many early traditions, as well as Judaism, Christianity and Islam that the universe is fairly recent creation of the past. Two schools of thought believe that the universe is fundamentally unchanged over time. Because human life - the whole of recorded history is so short, the universe was never significantly changed during this period. In the framework of a stable and unchanging universe, and if it has existed forever or is limited in the long past birth problems. Wormhole eruption, he said that: in a time and space to open the door of the origin of the universe we now live. In many parallel universe, there is a very ordinary parallel universe, in this universe, the largest mass of a black hole is constantly engulfed other celestial bodies in the universe, its quality is increasing, large enough to destroy all of its gravitational physical form when the energy released completely after the eruption stopped wormhole, time and space the door is closed. And emitted by high-energy particles, after a long evolution, the formation of the universe we are now living; the eruption of the wormhole into a parallel universe that previously an ordinary objects, which is why we can not find the center of the universe the reason. According to the Big Bang theory, many scientists for decades has consistently supported our universe was born about 140 million years ago. Accordance with the interpretation of this theory, the universe formed in a very small volume and density of great explosive substances 140 million years ago, ejected material particles and energy, it is also since then began after the explosion had time and space mass and energy. Before the big bang happened, neither matter nor energy, of course, no life. Solar System The solar system is a system of celestial bodies bound by the gravitational force of the sun's composition, its maximum range can be extended to about 1 light-years away. The main members of the solar system are: solar (star), the eight planets (including Earth), and countless asteroids, many satellite Astronomers object by analyzing light atomic absorption or release of an object is measured or far away from close to the earth, the light in a unique color or frequency of occurrence. When the object away from the Earth, these frequencies will move on the red spectrum. Standard Big Bang model shows that the universe erupted from a singularity of infinite density. But I do not know what triggered this outbreak. Simultaneously. For most cosmologists, the most reasonable explanation of consistency, in the universe shortly after, some unknown form of energy so that the young universe expanded more than the speed of light. In this model, the universe is a three-dimensional film Chaos in the celestial explosion, the birth of the Universe, at a certain time or never newborn newborn state, between its internal explosive remnants of interaction, while forming planet has gradually formed galaxies, in which galaxies are in the formation process gradually formed a multi-N Milky Way, the galaxy in which there is a there is a solar system, the solar system has eight planets, one of which is the Earth we humans live now. Earth is not life long ago, when the Earth's relatively far from the sun, in the Ice Age. When getting closer as the planet from the sun, in the solar system most suitable for life in the initiation position, and constitute the material elements of the earth in line with the initiation of life, we received after joining from foreign matter in the universe, the earth began appeared in the primordial seas, pristine ocean began to Earth this hotbed after a long time gave birth to the primitive life, initially the growth of plants, plant evolution to a certain extent, there has been a simple primitive life, primitive life began the evolution of life, which including the gradual evolution of the formation of prehistoric humans. Prehistoric modern humans than many larger head, looks also differ a lot, IQ is not high, can only be regarded as an animal. At that time the Earth has a primitive atmosphere, creating a long evolution of the planet's largest living things - <Summary of the above, the relevant causes of the Universe, the model - the structure, the initial state of the universe and the universe final outcome, so a variety of cosmological theories and hypotheses, research and forecasting all kinds, have their own achievements, strengths and weaknesses to the decision to choose, locate one, it is difficult. achievements Natural scientific exploration, research is needed to support a variety of research and theory theory, not in the case failed to confirm, then under the broken language, non-judgment, especially cosmology, astronomy and probing depth study would be distant and long process. various theories and doctrines must be analyzed and gain the most valuable scientific certainty. after all, is an advanced human wisdom of primates, in front of the great deep natural universe, it is still very small childish. even then successful scientific discovery, scientific theorem, it is not absolutely perfect, especially humans triumphantly landed on the moon, Mars, Jupiter, etc. after that, there will be more great brilliant discoveries and achievements on Earth - some of the human race on Earth Research will be rewritten or remodeling. this is the correct understanding of their humanity, understand nature, meeting new milestone in the universe. for example, gravity come from, why stars spiral spin structure, the particles are present when the universe was formed it, universe, whether single or multi-dimensional universe whether the same state, different state, the initial state of the God particle of how the state of the big Bang before the universe, the destruction of the universe is matter thoroughly mound did it, human life or other advanced life in the planet and viability of the universe, and so forth. The critical issue is not resolved, other theories and doctrines, it is difficult to justify. Even the greatest scientist is difficult to make their theories impeccable. The final outcome of the universe, or whether the continuation of the collapse, and whether humans can survive the extinction or destruction, the key point is that the universe is still two major problems: 1. The explosion destroyed the universe collapse disposable destruction or periodic repeat? 2. Distribution of the universe with the state, different state of the universe at the beginning and final states, as well as the planet and human synchronous, asynchronous. ? Whole or in part, the evolution of the evolution of this is the essence of the problem, this is the universe - life theory by far the most important issue. Maybe not solve the big problem, it is difficult to achieve a breakthrough progress. Hypothesis no matter how powerful is also inseparable from experimental simulation studies must, otherwise, it will become airborne hug Court. Natural Sciences stressed empirical observation observation verification testing, the loss of these fans will astray. Heliocentric - geocentric debate lasted for hundreds of years, the theory of evolution is carried out hundreds of years of debate, it is proof. Around at 10:00 on June 30th, 1860, the President of the Conference of the British Association for the Advancement of Science, please Wilberforce Bishop stage presentation. He said: "God and the Church is not against science, but can not tolerate blasphemy, insulting human pseudo-science, Mr. Darwin's theory of evolution is the pseudo-science, it is the lack of conclusive scientific proof powerful, entirely hypothetical style, not registered humble hypothesis to support the entire thesis, therefore, religious insight, and the scientific community will not support this absurd theory, "he stressed:." boundaries between human beings and things in the world is clear, a only radish efforts no matter how impossible the evolution of adult "suddenly, Huxley Wilberforce hand pointing to the audience and asks:"! here even Mr. Huxley says he is a descendant of apes, then I would like to ask this gentleman:? ape ancestors that one of your grandfather, your grandmother or that side of it, "Wilberforce rostrum in the midst of applause and laughter, and many people cheered his speech. Next, people set their sights Huxley, at this time, Huxley even smiling sitting next to the President of the Royal Society Brody said softly:. "God has handed him my hand."     Please Henslow announced Huxley took the floor, Huxley said slowly: "If I have to choose my ancestors in the following two: one side is the ape, one side is an influential figure, and this figure but confusion in serious scientific discussions in black and white, sensational, then I will not hesitate to do what I choose simian ancestors!. "revisit the issues, over a hundred years. modern science does not refute the theory of evolution came when criticism sound, visible, for scientific discovery and understanding of the theory has always been controversy throughout human society. for a modern human evolution, scientists made a number of new research and discovery, also made a number of evolutionary hypothesis, but I believe that the theory of evolution is essentially established , though not perfect, is basically in line with the facts, the author has worked on a lot of comparative animal anatomy animal study human anatomy, but also include genes, cells and other biological engineering research experiments, such as the theory of evolution is not established, where and how humans to? provability basis and where is it? intelligent design Tenable? creationism. extraterrestrial theory, scientists have turned into a religionist. " <[See History of Life Sciences (US) Loews · N · Magna. Biological basis of philosophical systems ((Netherlands) Bujie De (Boogerd]>. Combining history, teams face reality, we should adhere to the facts speak for scientific spirit, both to rational thinking, but also scientific proof to verify the facts, the truth can only verify in practice and the fact that inside, and not the opposite. Natural History history of the universe yet thus, the history of development of human society, the human history of the world should be even more so. rooted and noted, with facts to prove the practice of human society. simple inference inference prediction is important, but more important still is the fact that more iron, iron the chain of evidence, iron Scientific tests to verify data and so on. Only the latter have completely invincible overriding powerful destructive force. For example, human studies of the moon, Mars, Jupiter, various inferences inference Hypothesis academic endless variety of research experiments, also a lot of simulation, although there are quite significant scientific value, but only humans can personally board the Mars moon of Jupiter's moons, after and use scientific and technological means to obtain direct and indirect information data, etc., in order to obtain real results. huge intelligent robot power, but not absolute, and replace all of humanity itself practice and research. Therefore, only humans entirely social practice, in order to create the history of mankind. Should AI and completely separate human beings, that means the total collapse or collapse of the biological human world. Without the human organism, even more full of intelligent robots on Mars, which human society this is pointless and world history is not a simple science ethics, people - serious ethical problem machine or the like, but very naive absurd another example, intelligent robot wars world chess master, and indeed the man-machine war, intelligent robots. indeed extraordinary, Supreme Cou, however, no human presence, the great intelligent robot naturally lost his powerful meaning. Taking the theme of world history, of course, is the existence of human society is the basis and premise, mainly to discuss the life of the world, taking into account the natural history of the universe's history, the purpose is to combine the two study analysis, it is necessary to prioritize, we can not categorically separated , complement each other bears. Thus, the entire history of the more clear image clearer. Today, many scientists and the world that the future outcome of the universe and human destruction is difficult to avoid and escape. in fact, this need not panicky, first of all, these from the modern human society is still very far away so-called "doomsday" "global explosion", etc., is not groundless, alarmist, is not optimistic; however, as the book, at least in the tens of millions of years later according to new research possible Earth, moon, Mars, Venus, Mercury, Jupiter's age can still maintain tens of millions of years. momentary or short-term changes will not disappear, so that the survival of mankind can continue tens of hundreds of thousands in millions of years. after thousands of years millions of years, should the survival of mankind, the planet had evolved into people, the Galaxy, Pegasus people, the universe of people. unless the entire universe collapse once and for all destroyed, otherwise, the universe of human offspring entirely possible to continue to continue to survive and multiply, this is not science fiction, but most real exciting chapter in world history. of course, the whole, human beings can not be controlling the whole of nature and the universe, can only passively adapt and obedience, otherwise, it will be swallowed by a black hole or tear strength. However, in a very limited space, still a corner of the security presence. this is one of humanity without excessive pessimism of reason of it, scared, anxiety. that is why now humanity to the moon, Mars, Jupiter and other celestial bodies courageously embarked on satellite reasons. this is exactly the main point of this paper. Firstly scientific discovery scientific truth requires research scientists to explore, and finally need strong arguments to verify the fact that revised and improved. after normalization hypothesis hypothesis, theory after theory go, after all, owned by empirical evidence, after all, owned by reasoning reasoning. the universe is a great testing ground, everything needed him harsh and fine honey detection test. "The history of human life, only forward, but there is no inversion, even if the natural majesty of the universe how powerful, how gentle and affectionate, how ruthless, highly intelligent creatures attack humans only and must not flinch escape without which the human world - the world of Life inevitable collapse or extinction. ". Evolution of the universe, structure of the universe, the universe's history, <including life history, biology history, human history, the history of mankind on the planet, the universe of human history, etc.>, by its very nature is concerned, are the natural historical process. Various theories, doctrines, Research on human eye-opener, benefited, worth celebrating, especially modern humans have begun to Mars, Jupiter and other more distant stars marching, remarkable achievements. As the history of the universe will continue to debate and explore the vast depth way, we humans will and find greater success. Birth of the universe, evolution, extinction is cosmology, physics, aeronautics field extremely important research topic, important cosmic particles, gravity, gravitational field, gravitational waves, etc. as well as the Big Bang - the steady state, and should have [ [super spin of]], [[super Twist "vector"]], [[super spin domain]], [[super swirling]], [[super "roton"]] sports-related, resulting in the physical universe, motion , elementary particle generation, movement, polarization, cosmic gravitational generation, evolution of the universe, the big bang, steady state universe, and so to a large extent is closely related with this. << endless large and small, super spin >> to build the entire universe, the entire structure of the universe, from the past, now and in the future. super spin crucial role to play. {super spin, explanations of terms in the physical sense, pure mathematics and pure natural philosophy on the distinct, We refer the reader must be careful to avoid confusion or misunderstanding its specific rich profound connotation} natural sciences is important not only reasonable to fully explain the natural world, explain the natural world, but more importantly is the complete accuracy verification and in detail in it confirmed the truth hidden behind the bizarre and esoteric confusing its basic nature, primitive, nature. that is the most important to the most critical. thus started, a lot of other difficult and confusion will be solved In other words, the universe, the material before the birth, after birth, super spin are important. super spin particle, the universe, gravity, gravitational field, gravitational waves are inseparable. until now, are still closely linked. regardless of the big bang, and regardless of black holes, dark matter, in which the super-rotation play an important role. Therefore, Theorem {[super ultra-spin particle spin + + = cosmic gravitational ....}}, which is the basic representation. that is the standard expression super spin theorem. ultra-roton, the predecessor of the particles, but also its development and evolution trajectory. Admittedly, the standard model of the universe, before the universe, wishy-washy, a deserted, then the big explosion, the dust particles are aggregated to form a celestial planet universe was born in the big bang has , 140 million years old. everything from scratch. the existence of the big Bang, is no trivial matter, however, why the formation of the big Bang, the raw materials come from raw power, it is difficult to clarify. more difficult to understand is, prior to the big Bang, universe, matter = 0, unconvincing. these are research and analysis required to answer. Written history of mankind, just before 5ooo years, even years not to 1oooo than geological time, astronomical time, is simply too small, and insignificant. That human is super super god, can badly, to turn things around, then not science, but myth .5ooo years compared to hundreds of billions of years, millions of years, how small cosmic history, natural history and human history of the world, a very long and lengthy, very mysterious and complicated, even clairvoyance, it is impossible to look at all children know everything, errors errors, misjudgment is inevitable misunderstandings, to really step into the temple of truth, you need to generations of pioneering research amended. only in this way, the universe's history, natural history, human history, world history and to describe show the greatest and most glorious chapter. L'histoire naturelle de l'histoire de l'univers // // // de l'histoire humaine, l'histoire du monde --- Aperçu de la recherche Chronologie de l'histoire mondiale (univers naturel, la terre, le monde humain, la vie) // Nouvelle nouvelle astronomique géologique - univers chronologique Les documents historiques et de recherche selon le monde, l'histoire du monde, l'histoire de la civilisation mondiale, les événements chronique du monde, ainsi que l'histoire naturelle, l'histoire de la terre, l'histoire de l'univers, l'histoire géologique, histoire biologique et similaires. Histoire mondiale livres ont beaucoup d'autorité, les Etats-Unis, la Grande-Bretagne, la Russie, l'Europe, le pays du milieu ont même chef-d'œuvre de l'histoire universelle. Défiler quelques millions de mots, il est la lecture intensive vaut la peine. Shanfanjiujian cet article, une brève description de certains des problèmes, comme les échanges universitaires superficiels. Chronologie de l'histoire mondiale Il y a environ 300.400 millions d'années: l'homme est apparu sur terre. Il y a environ 200.300 --1 millions d'années: les humains paléolithiques. Éclat de pierre populaire, a été l'utilisation du feu industrie de la Collection, la descente et la famille commune matriarcale produits. BC 3 - il y a un million années: la religion primitive apparaît. A propos de 12.000 BC - 4000 BC: l'homme Stone Age. Invention et en utilisant un arc, belle pierre largement utilisés industrie de la chasse. De 8000 BC - Ancien 2000: l'humanité est entrée dans l'âge néolithique. pierre brunissage populaire, il y a eu l'agriculture primitive et l'élevage . Matriarcale prospérité commune. 6000 BC: Asie mineure est apparue en lin et en laine. Circa 6000 - 1000 BC: ancienne Mésopotamie, l'Asie Mineure, la Grèce, Rome, la Perse, l'Inde et d'autres endroits étaient les religions primitives et anciennes Enseignez répandue. <Voir monographie: "Anthropologie structurale" (1958,1973) • Claude Lévi - Strauss avec Anthropologie Structual par Claude Lévi-Strauss «Anthropologie sociale» (1962) • Edward Evans - Pritchard avant Anthropologie sociale et autres essais par E. E. Evans-Pritchard "Pensée sauvage" (1962) • Claude Lévi - Strauss avec La Pensée sauvage de Claude Lévi-Strauss «Société tribale de politique, juridique et rituel» (1965) • Max Gluckman de Politique, droit et rituel dans la société Tribal par Max Gluckman "Niveau Man" (1966) avec Louis Dumont •> BC 4000 - 3000 BC: Ancient Egypt, Asie du Sud, Europe du Sud, Europe centrale et la Chine et d'autres endroits ont commencé à utiliser le minerai de cuivre. 3500 BC - il y a 3100 ans: dans l'ancienne Mésopotamie période Uruk. Il semble poterie tour de potier et le renforcement des ziggourat, la création d'un cunéiforme. Gouy Et national (Nome) est formée. Il est apparu hiéroglyphique. 3500 BC - 3000 BC: résidents Mésopotamie antiques ont commencé à utiliser le transport sur roues. Les anciens Egyptiens utilisés dans l'agriculture charrue, herse Et la fécondation. Il y a 3100 ans: les dirigeants de l'Egypte ancienne conquis la Basse-Egypte Menes, la formation initiale de l'unité nationale. L'Egypte a commencé la période Dynastique. 3000 BC: l'ancienne Mésopotamie sumérienne zone de ville-état est apparu l'esclavage. 3000 BC: égyptien antique semble paddle et bateaux à voile. Les anciens Egyptiens utilisaient des miroirs en bronze. Indiens anciens ont inventé les caractères de timbre. Avant 2686 - avant le 2181: l'Ancien Empire égyptien. unité nationale complète, de construction à grande échelle de la pyramide. Avant le 27 e siècle: l'épopée héroïque de l'ancienne Mésopotamie ère sumérienne de la «épopée de Gilgamesh» est formé. 26ème siècle avant JC: le célèbre ancien Sphinx égyptien achevé. Europe semble machine à tricoter. Chronologie de l'histoire mondiale "Histoire du monde, l'histoire du monde." Longue histoire et compliquée du monde, certains faits historiques aura inévitablement des questions ou inexactes aussi, besoin de continuer à identifier et corriger ultérieurement modifiés pour restaurer l'apparence originale de l'histoire. Il y a environ 300.400 millions d'années: l'homme est apparu sur terre. Il y a environ 200.300 --1 millions d'années: les humains paléolithiques. pierre ébréchée populaire, il a été l'utilisation du feu, l'utilisation extensive fin de l'os, dispositif de corne. À la chasse. industrie de la Collection, la descente et la famille commune matriarcale produits. Il y a environ 170 millions années: Yuanmou Yuanmou Chinois vivant dans ce domaine, a été en mesure de fabriquer et à utiliser des outils de pierre. {[(Voir l'histoire du monde, encyclopédies Stavros raison Oceanus: "Global History" McNeil "Rise of the West - l'histoire de la communauté humaine» et «l'histoire du monde", ainsi que W · H .. "Histoire du monde" de McNeil ( 1967), Stavrianos "d'Histoire mondiale» et ainsi de suite.} 1 BC 3 - il y a un million années: la religion primitive apparaît. A propos de 12.000 BC - 4000 BC: l'homme Stone Age. Invention et en utilisant un arc, belle pierre largement utilisés industrie de la chasse. De 8000 BC - Ancien 2000: l'humanité est entrée dans l'âge néolithique. Brunissage pierre populaire, il y a eu l'agriculture primitive et l'élevage. . Matriarcale prospérité commune. 6000 BC: Asie mineure est apparue en lin et en laine. Circa 6000 - 1000 BC: ancienne Mésopotamie, l'Asie Mineure, la Grèce, Rome, la Perse, l'Inde et d'autres endroits étaient les religions primitives et anciennes Enseignez répandue. Circa 5000: Commencez par un procédé de forgeage à froid et le traitement du sud-ouest de cuivre naturel en Asie et en Asie centrale. Egypte ancienne a été utilisé et d'autres armes échelle de l'équilibre, le plus connu Pesée tôt. De 5000 BC - Ancien 4000: Dans l'Egypte ancienne, le soleil et la lune apparaissent comme calendrier régulier. BC 4000 - 3000 BC: Ancient Egypt, Asie du Sud, Europe du Sud, Europe centrale et la Chine et d'autres endroits ont commencé à utiliser le minerai de cuivre. Il y a 3760 ans: la première année du calendrier juif antique. 3500 BC - il y a 3100 ans: dans l'ancienne Mésopotamie période Uruk. Il semble poterie tour de potier et le renforcement des ziggourat, la création d'un cunéiforme. Gouy Et national (Nome) est formée. Il est apparu hiéroglyphique. 3500 BC - 3000 BC: résidents Mésopotamie antiques ont commencé à utiliser le transport sur roues. Les anciens Egyptiens utilisés dans l'agriculture charrue, herse Et la fécondation. {5ooo BC avant} Avant 2686 - avant le 2181: l'Ancien Empire égyptien. unité nationale complète, la construction à grande échelle de la pyramide. 26ème siècle avant JC: le célèbre ancien Sphinx égyptien achevé. il y a 2500 ans: l'ancienne médecine sumérienne a constaté que l'eau minérale a des propriétés curatives, les anciens Sumériens utilisé des lampes à huile, apprendre à faire cuire du pain et brasser de la bière liqueur. Europe semble machine à tricoter. Circa 2500 - 1500 BC: Xiyaguya ladite période Avant le 25ème siècle - Avant le 23 siècle: dans l'ancienne invention Babyloniens de la poterie sculptée sur la carte. Avant 2378 - avant le 2371: l'ancien roi sumérien du règne de Lagash Urukagina, Avant 2371 - avant le 2154: l'ancienne mésopotamienne akkadien Uni. De 2300 BC - Ancien 1750: période de culture Ancient Indian Harappa. Avant 2181 - avant le 2040: Première Période Intermédiaire de l'Egypte ancienne. Avant 2017 - avant 1595: l'ère de l'ancienne Mésopotamie ancienne Babylone Avant 2000: - la civilisation mycénienne Égée apparaît. Ancient Egypt semble bibliothèque, momification. Avant 1900-- avant 1600: l'ancien texte grec apparaît linéaire, bronze largement utilisé. <Voir philosophie de l'histoire: Introduction à la philosophie de l'histoire, l'histoire de la civilisation mondiale, cette défiler l'histoire du monde et d'autres chef-d'œuvre historique> Walsh (William H.Walsh, 1913-1986), philosophe britannique> Avant 1792 - avant 1750: la Mésopotamie Antique Babylone 6ème génération règne du roi Hammourabi, sera "Code de Hammurabi" Avant 1786 - avant 1567: la deuxième période intermédiaire de l'Egypte ancienne. Hyksos invasion de l'Egypte a jugé plus de cent ans. Avant le 18ème siècle: l'ancienne Babylone a eu lieu les agriculteurs almanach, y compris l'irrigation, la culture et la récolte, comme les premiers agriculteurs connus almanach. Avant 1567 - avant le 1085: Nouvel Empire de l'Egypte ancienne. Les anciens Babyloniens ont créé une mathématiques et l'astronomie bien développées. Chevaux commencent pour le transport de véhicules. zones UK Salisbury et Wiltshire construits Construire Stonehenge. Les anciens Egyptiens utilisaient le mercure. Il y a environ 14 siècles: Chinois Pan Geng déplacé à Yin de Om générer Oracle. Le premier 14 - Ancien 12ème siècle: l'ancien Empire hittite en Asie occidentale. Le milieu du 14ème siècle avant JC - il y a 11ème siècle: l'ancien Xiyaguya dit Empire. Il y a environ 13 siècles: Shang chinois bronzes apogée. Late Shang Si Mu Wu Ding est le plus grand bronze restant. Ancien 11-- 9ème siècle avant JC: le grec ancien homériques. 1000 avant JC - Les anciens 600 ans: L'ancienne période védique indien. formation de l'État aryenne, brahmanisme propagation. 10ème siècle - il y a 612 ans: l'ancien New Empire assyrien Ouest. Fer est apparu et largement utilisé. Top 10 - Top 5 siècle: indiens premiers écrits philosophiques antiques formation brahmanisme classique "Upanishads". Il y a 841 ans il y a 9 siècle: l'ancienne formation grecque Sparte de l'Etat. 8ème siècle: l'ancienne épopée grecque "Iliad", "Odyssey" est formé, transfert à Homer. Pergame a inventé les gens de parchemin dans le Moyen-Orient. Grec ancien premiers Jeux Olympiques à Olympie. BC 700 - il y a 600 ans: les anciens Phéniciens avec suif et de cendres de montagne en savon. Avant 8 - 6ème siècle avant JC: l'ère de la monarchie romaine. Avant 626 BC - 539 ans: l'ancienne Mésopotamie du néo-babylonienne Uni. Avant 624 BC - 547 ans: l'ancien philosophe grec Thalès vivant, la création de l'école de Milet. Avant 610 BC - 546 ans: l'ancien philosophe grec Anaximandre vivant. Il y a environ 7 siècles: les Babyloniens ont trouvé éclipses Saros récurrentes. Avant 604 BC - 561 ans: l'ancienne Mésopotamie du roi néo-babylonien Nabuchodonosor II règne, la construction des jardins suspendus, détruire l'Etat juif. Il y a 594 ans: le grec ancien athénien Solon mettre en œuvre la réforme politique et économique, publié le «Code de l'Attique." D'environ 580 BC - il y a 500 ans: l'ancien mathématicien et philosophe grec Pythagore était vivant, la création des pythagoriciens. Il y a environ 563 années - il y a 483 ans: Sakyamuni, fondateur du bouddhisme vivant. Avant 558 BC - 330 ans: l'ancien Empire perse et l'Asie occidentale. 551 BC - 479 BC: Confucius vivant, la création de l'école confucéenne de la pensée, la première école privée, a présidé la compilation de l'ancienne finition de culture. Existants "Les Analectes " . A propos de la première 500-- il y a 449 ans: Guerre perse. Avant 485 BC - 425 ans: l'ancien historien grec Hérodote vivant. Avant 469 BC - 399 ans: l'ancien philosophe grec Socrate vivant. Avant environ 460 BC - 401 ans: l'ancien historien grec Thucydide vivant, auteur de "Histoire de la guerre du Péloponnèse." A propos il y a les 460-- 370 premières années: l'ancien philosophe grec Démocrite vivant. il y a 432 ans: le grec ancien Parthénon, construit par le sculpteur Phidias design décoratif. Il y a anciens 431-- 404 années: l'apparition de la guerre du Péloponnèse. histoire militaire mondiale. Avant 427 BC - 348 ans / il y a 347 ans: l'ancien philosophe grec Platon vivant. Avant 334 avant JC - 324 ans: le roi macédonien Alexandre le Grand a mené ses conquêtes de l'armée de Perse, d'Asie centrale et de l'Inde, des milliers de miles de voyage, l'histoire ancienne du monde La célèbre expédition militaire. <Voir Annuaire du monde militaire et d'autres versions de livres>. Avant 330 avant JC - 275 ans: l'ancien mathématicien grec Euclide vivant, la «géométrie». 323 BC - il y a 187 ans: l'ancien royaume indien de la période Magadha Maurya. 4ème siècle avant JC - AD 3,4 siècle: l'ancienne épopée indienne "Mahabharata" est formé. Avant 287 BC - 212 ans: l'ancien mathématicien grec et physicien Archimède vivant. Il y a environ 280 ans: l'ancienne ville portuaire d'Alexandrie, en Egypte construit le phare de Pharos, l'une des sept merveilles du monde antique. Il y a environ 269 ans - il y a 232 ans: l'ancien royaume indien de Magadha Maurya roi Ashoka règne du Maurya entré dans sa phase de pointe. il y a 7 ans ou il y a quatre ans: Selon la légende, le fondateur de la naissance de Jésus-Christ. 1er siècle: sculpteur grec Ndiaye Sandra Ross, Nuoduoluosi, 波利佐罗斯 trois sculpté statue de marbre de «Laocoon». 1er siècle après JC l'Empire romain a commencé 395 ans de christianisme 476 ans de la scission Empire romain Début 7ème siècle franque royaume établi 622 années de la montée de l'Islam 676 Les réformes Taika japonaises commencent 8 milieu du siècle Silla unifié la péninsule coréenne la plus Au début du 9ème siècle empire arabe devenir 843 formé le Royaume des Anglais. Charlie est pas la division du 12ème siècle de l'empire, la France, l'Allemagne et l'Italie produisent prototype Le Japon est entré dans le 14-16 siècle sous le règne du shogunat 1453 Renaissance en Europe 1453 Empire byzantin 1492 Dias voyage le long de la côte sud de l'Afrique 1497--1498, Columbus a atteint l'Amérique / Christophe Colomb a découvert le Nouveau Monde 1519-1522 Voyage Vasco da Gama en Inde 1640 Magellan a navigué autour de la flotte mondiale 1688 Anglais révolution bourgeoise a commencé 1760 coup d'Etat britannique, la nouvelle bourgeoisie et la mise en place de la règle du Guizhou 1775--1783 révolution industrielle britannique a commencé 4 juillet 1776 Guerre du Nord de l'Indépendance américaine Amérique du Nord Congrès Continental a publié une «Déclaration d'indépendance», les États-Unis ont déclaré l'indépendance Puissance 1785 Watt a amélioré la machine à vapeur est faite pour démarrer une machine textile utilisé / révolution technologique, industrielle 1848--1849 révolution européenne 1861 réforme du servage russe 1861 --1865 guerre civile américaine Meiji Restauration du Japon a commencé en 1868 Finaliser l'unification de l'Italie en 1870 1871 achevé l'unification de l'Allemagne, l'Empire allemand a été créé 1939,9 Seconde Guerre mondiale a éclaté 1 01/12/1943, les États-Unis, la Grande-Bretagne a publié la Déclaration du Caire << >> L'Organisation des Nations Unies a créé 1.945,10 L'ex-Union soviétique. 1993 instituant l'Union européenne <Stavrianos chef-d'œuvre de l'histoire du monde, l'histoire de la civilisation mondiale, l'Encyclopédie mondiale, Encyclopedia Britannica, Wikipedia et d'autres ex-Académie soviétique des sciences Editor: Histoire du monde, "l'histoire du monde" est Publishing société publié des livres pour 2000 personnes , l'auteur est Cui Lianzhong. "Histoire du monde" sous l'Antiquité, le Moyen Age, les temps modernes, sous modernes, modernes, six volumes contemporains, l'histoire a commencé dans la société primitive et se termine au début de 1996. Nous avons la valeur de la recherche universitaire et historique.> événements Histoire mondiale Créer civilisation égyptienne antique Ancien royaume babylonien "Code d'Hammourabi" développement Guerre de Troie Solon Darius bataille Bataille de Marathon La naissance de l'ancienne philosophie grecque / histoire de l'humanité, le patrimoine culturel, la civilisation européenne / Jeux Olympiques / Monde Événements sportifs [De nombreux événements majeurs dans l'histoire du monde, des gens importants, il est difficile de comprendre avec précision tous. Il existe différentes versions de l'Histoire générale du monde, il est difficile de consensus.] Grandeur et décadence de l'Empire romain Création et diffusion du christianisme "Code Justinien" rendu la migration des peuples germaniques Création et disparition de la civilisation maya Collisions de la civilisation européenne L'effondrement de l'Empire byzantin La montée de l'Empire ottoman Guerre de Cent Ans Renaissance Shakespeare Drame Création Ouverture de nouvelles routes La Réforme européenne Copernic a présenté héliocentrique Newton a découvert la gravité Anglais révolution bourgeoise Moteur invention Faraday Éclaircissement La réforme de Peter I / Russie La première révolution industrielle révolutionnaire américaine La révolution française La montée et la chute de Napoléon Guerre latino-américaine de l'Indépendance Révolution de 1848 européenne Théorie de l'évolution de Darwin la réforme Meiji La mise en place de la première internationale deuxième révolution industrielle Téléphone et de la technologie radio invention frères Wright et la naissance de l'avion voiture de naissance Krstic invention train Première Guerre mondiale Mise en place d'une coalition internationale théorie d'Einstein de la relativité Deuxième Guerre mondiale L'ancienne Union soviétique / la fin de la guerre froide. La création de l'Organisation des Nations Unies Nouveaux changements dans la troisième révolution technologique du nouveau modèle politique et économique international des nouvelles tendances économie moderne de la société / monde et monde politique / Monde Militaire / Monde Culture / Religion du Monde / World Population, etc. La mondialisation - de nouvelles opportunités, de nouveaux défis, nouveau monde et évolution L'homme sur la lune / révolution cosmique, la planète révolutionnaire, la planète a commencé à la société {{ "The Outline of History" (anglais) Hz avec Joe Wells. "The Outline of History: l'histoire biologique et concise de l'humanité" (en anglais) Hz avec Joe Wells. «Histoire de la civilisation occidentale," [US] · E · Robert Lerner a attendu. Ceci est un livre très influent en Amérique du Nord, trois co-historien. L'ancienne Académie soviétique des sciences Editor: World History <scroll> "L'histoire du monde de la civilisation» [US] Philip Lee Ralph attendit. 4 co-historien. "L'histoire du monde de la civilisation», le Weierdulan. Un travail étonnant. }} Apparaît le clonage / la technologie biologique moderne Créer civilisation égyptienne antique Ancien royaume babylonien Guerre de Troie Solon Darius bataille Bataille de Marathon Création et diffusion du christianisme "Code Justinien" rendu la migration des peuples germaniques Création et disparition de la civilisation maya L'effondrement de l'Empire byzantin La montée de l'Empire ottoman Guerre de Cent Ans Renaissance Ouverture de nouvelles routes La Réforme européenne Copernic a présenté héliocentrique Newton a découvert la gravité Anglais révolution bourgeoise NYSE développement / capitaliste Moteur invention Faraday Réforme de Pierre I La première révolution industrielle révolutionnaire américaine La révolution française La montée et la chute de Napoléon Révolution de 1848 européenne Théorie de l'évolution de Darwin Téléphone et de la technologie radio invention {{La partie principale des événements de l'histoire du monde, l'histoire controversée individuelle du monde peut être trouvé dans l'histoire générale, l'histoire du monde et de la civilisation classiques Encyclopédie des ressources du réseau, trois encyclopédie du monde}}. Troisième révolution technologique Après la guerre froide nouveau monde évolution. Les pays compétitifs dans le monde, le développement rapide de la science et de la technologie de la productivité moderne. Le génie génétique, génie aérospatial, informatique et réseau d'information d'ingénierie, de l'ingénierie des matériaux, génie énergétique, mécatronique, génie biomédical, génie agricole, la robotique intelligente, la technologie marine, le génie militaire et de la technologie appliquées à la société humaine grandement. La concurrence et les conflits dans divers nouveaux défis, de nouveaux conflits, la civilisation, la religion, la nationalité, la culture, etc. suivis, l'ordre du monde est confronté à des changements et de l'innovation, un sérieux défi pour la consolidation et le développement de la crise dans l'ordre du monde - il y a Transformation Rangée. Humains - primates Primates - caractéristiques physiologiques {évolutionnaire / biologique évolution des primates humains, étude comparative} Primates crâne de primate Chez les primates habitent les arbres caractéristiques communes, il y a beaucoup de différences. Y compris la force de maintien de la clavicule nécessaire dans les côtes de la poitrine, sous tous les angles pour assurer la liberté de mouvement de l'épaule, en face des doigts, des ongles, toucher du doigt sensible (tep) fin, la dégradation de l'odeur de tendance, le nombre de dents est relativement dégradée , système visuel complexe (sensibilité visuelle et la couleur de sens), et le tronc cérébral disproportionnée, les paires cortex cérébral élargies de la glande mammaire, un enfant commun, une longue période de gestation et similaires. Habituellement, les primates très sociaux, et il y a hiérarchie. Pliocène a commencé primates monogames, et forment une société patriarcale stable. tête Primate a deux yeux vers l'avant: Ce binoculaire peut fournir une idée précise de la distance. Il y domine le front orbital. Il y a un énorme dôme sur le crâne de primate - crâne, ce qui était inhabituel dans sa catégorie. Crâne protège le cerveau en suivant la même différence. le volume humain crânienne de la cavité (espace intérieur du crâne) que les primates non humains devrait être trois fois la plus grande cavité crânienne, qui montrent que les humains ont un cerveau plus gros. Le volume du crâne humain moyen est de 1201 centimètres cubes, tandis que les gorilles sont 469 cm3, 400 cm3 chimpanzés, orangs-outans est de 397 centimètres cubes. La direction principale de l'évolution des primates est le cerveau, en particulier le néocortex. Selon les anthropologues et généticiens ont conclu que l'évolution et la mutation du cerveau humain en quelques dizaines de milliers d'années après <quelques centaines de mille ans après le cerveau est plus grand volume crânien et le cortex cérébral, le cervelet et sulcus central arrière et d'autres parties fonction > partie de l'évolution, une partie peut être dégradée. à la variation génétique, une mutation, des cellules, des enzymes, des protéines et analogues. Primates ont généralement cinq doigts à chaque patte avant (doigt), la fin de chaque orteil a ongles cornée. La main, le pied et les orteils de la peau très sensible, constituent un sens des systèmes tactiles bien développé. La plupart des primates sont appropriés pour les objets du pouce de préhension (thumbs opposables), qui se caractérise par des primates emblématiques, mais pas unique. Par exemple Opossum là pour les doigts. Pour les primates, tels que les ongles des doigts est accompagné par quelques minutes de marche entre les anciens arbres du produit. De nombreuses méthodes ont ainsi développé un membre supérieur sortant. Primat d'cou sternum en forme d'anneau très évident primates Museau (la mâchoire inférieure) ont montré rétrécissement tendance. Techniquement parlant, l'Ancien Monde et le Nouveau Monde des singes, la distinction réside dans la structure du nez, et la différence entre les singes de l'Ancien Monde et les singes dans l'arrangement des dents. Nouveaux singes du monde narines face à côté, et cercopithécidés sont vers la narine inférieure. Primate avec une série de dents disposées de manière. pointe molaire Hominid (la dernière pointe) est dans l'histoire des débuts de primates évolué, ce qui correspond à la pointe inférieure d'origine des molaires (pointe inférieure avant) disparaîtra. Prosimiens a sa lèvre supérieure unique, fixe, le nez humide et les dents inférieures avant vers l'intérieur. l'évolution des primates et la vision par rapport à la plupart des mammifères était inhabituel. ancêtres primates développés vision trichrome (peut voir la fonction trois couleurs), et les animaux nocturnes, les animaux à sang chaud et d'autres mammifères dans les ancêtres de dinosaures de la période se perd dans un tiers des cônes rétiniens. Mouvement primates armes variées et utiles, les pieds, sauter, arboricole, et marcher à quatre pattes sur la terre, les jointures et autres reptiles. Bon nombre des singes d'origine suborder animaux saut vertical et attaché aux arbres, arbustes, dont de nombreux singes, tous les indri. Les humains sont les seuls primates à tout droit. System Migration Femme - nés femelles quittent le groupe. Homme est resté dans la population d'origine, tandis que les femmes et le collectif ne sont pas étroitement liés. système d'échange Homme - les femelles restent dans le groupe d'origine et les mâles à l'âge adulte de déménager. Permettre à la société de la polygamie va tomber dans cette catégorie. Ces groupes sociaux généralement un peu plus grands, communs dans les lémurs à queue, des singes capucins. Monogamie - un mâle et une structure stable féminine, parfois accompagnée d'héritiers. soins de la famille et les services sociaux (tels que la défense territoriale) le travail est divisé en deux parties. Les parents vont quitter le territoire après les enfants adultes. Une telle société est des groupes de gibbons plus typiques. Toutefois, lorsque la monogamie est pas une représentation fidèle de la vie. Type solitaire (pour femmes) - en même temps que le mâle va protéger leur territoire, et qui comprendra plusieurs domaines d'activité des femmes. Ces structures se trouvent chez les singes. Primates Primate croissance plus lente que les autres mammifères. Outre les humains, les primates louveteaux reposent toutes sur le transfert de l'allaitement maternel de nutriments par la mère pour protéger, guider et de soutien. Certaines espèces sont des hommes aussi, en particulier son père, en charge des activités et de la sécurité des enfants. D'autres membres de la famille. <[Histoire du monde / Introduction à l'histoire de l'univers (Kant)> site de l'encyclopédie Wikipedia, encyclopédie Britannica, Encyclopedia Americana et d'autres sites d'information.]> mammifères primates que la même taille a une plus petite enfance (du sevrage à la maturité sexuelle). Ceux-ci sont habituellement jouent dans les connaissances acquises. amené plus tard à maturité avec la même taille mammifère primate par rapport à une vie plus longue. Et l'espérance de vie moyenne des femmes est plus longue que les hommes. source de nourriture Primate est très vaste. La plupart des primates mangent des fruits, afin d'absorber les glucides et les graisses digestibles pour l'énergie. Cependant, d'autres primates ont également besoin de nourriture, tels que les feuilles ou les insectes, pour les acides aminés, vitamines et minéraux (oligo-éléments). Baboon est les seuls grands primates herbivores. Tarsiers sont les primates les plus carnivores - se nourrit d'insectes, de reptiles et d'autres animaux. {Vie intelligente avancée dans les connaissances scientifiques actuelles chez l'homme avec seulement d'autres microbes similaires dans des environnements extrêmes - Extreme Life peut trouver d'autres planètes ou grande dans l'univers, cependant, les mammifères primates similaires dans la Terre visible, la lune. Jupiter, Mars peut-être pas même dans le cadre de ceux-ci et d'autres organismes supérieurs. même s'il y avait probablement déjà éteinte. Quant à savoir si dans un univers plus vaste, bien sûr, ne peut pas tous négatifs, cependant, il est possible, mais pas trop. extrêmophiles ou autre vie extrême ont alors la possibilité d'un univers un peu plus grande dans le développement du changement, la vie biologique extrême extrême va produire et périr. tout se développe et changer l'univers, l'astrophysique, particule, exprimant différentes formes d'expression des formes de vie est aussi plein de développement et de changement.}. Cosmic tableau récapitulatif de l'histoire: Température (K) Energie (eV) Temps (s) au cours de temps physiques 1032102810-44 ère Planck 1028102410-35 grande époque unifiée 10-35, -33 flambée processus de stade de l'inflation ère 101310910-6 hadronique 101110710-2 lepton ère <génération de particules, les particules en jeu>. 10101061 neutrino neutrino découplage découplant 5 × 109 5 × 105 5 annihilation électron de paires électron-positron 1,091,053 points d'époque nucléosynthèse de nucléides lumière générée 400 millions d'années de la formation des premières étoiles, réionisation Galaxies, à grande échelle la formation des structures 2,725 3 × 10-4 137 milliards d'années moderne <[Voir chef connexe »Sur le système de l'univers," Laplace. "Une brève histoire de l'Univers" (Une brève histoire de l'Univers) est un physicien britannique Stephen Hawking (Stephen Hawking). Une brève histoire de l'auteur Galaxy (US) Timo · West Ferris (Timothy Ferris). Une brève histoire de presque tout (Bill Bryson]>. Une brève histoire de la géologie de la Terre: à titre indicatif, peut être trouvé dans la monographie de la recherche pertinente, l'Encyclopédie mondiale, Encyclopedia Britannica, Encyclopedia Americana, Wikipedia, Wikipedia et autres sites au nom des strates, des représentants des années géologiques International. il y a environ 4,567 milliards à 25 milliards d'années: Archéen (AR, Archéen) il y a environ 4,567 milliards à 36 milliards d'années: Éoarchéen (aR0, Éoarchéen Era) Paléoarchéen (Ar1, Paléoarchéen Era): il y a environ 3.6-32 billion années Le Archéen (Ar2, mésoarchéen Era): il y a environ 32 milliards à 2,8 milliards d'années Néoarchéen (Ar3, Néoarchéen Era): il y a environ 28 milliards à 2,5 milliards d'années Protérozoïque (PT, Protérozoïque Eon): il y a environ 25000000000-543000000 années il y a environ 2,5 milliards à 18 milliards d'années: Paléoprotérozoïque (Pt1, Paléoprotérozoïque Era) Avant Hutuo discipline: il y a environ 2.5-23 billion années Hutuo Ji (Ht): il y a environ 23 milliards à 1,8 milliards d'années <Se reporter aux «Principes de géologie" Lyell, etc.> il y a environ 1,8 milliards à 10 milliards d'années: mésoprotérozoïque (Pt2, mésoprotérozoïque Era) il y a environ 1,8 milliards à 14 milliards d'années: Great Wall siècle (Ch) Early Great World mur (Ch1): Late Great World mur (Ch2): il y a environ 1,4 milliards à 10 milliards d'années: Jixianian (Jx) Early Jixian mondiale (JX1): Late Jixian mondiale (JX2): Néoprotérozoïque (Pt3, Era Neoproterozoic): il y a environ 10000000000-543000000 années Qingbaikou (Qb): il y a environ 10000000-800000000 ans / Hamiltonien (période Tonian): il y a environ 10 milliards à 850 millions d'années Early Qingbaikou mondiale (Qb1): Late Qingbaikou mondiale (Qb2): il y a environ 850 millions à 6,3 milliards d'années: Nanhua (Nh): il y a environ 800 millions à 6,8 milliards d'années / Cryogénien (période Cryogénien) Early Nanhua mondiale (RN1): Nanhua Night World (NH2): Sinian (Z): il y a environ 6800000000-543000000 ans / Ediacaran [Période Ediacaran, également connu sous le record Neoproterozoic Ⅲ (Néoprotérozoïque)]: il y a environ 635 millions ~ 542.000.000 années Early Sinian (Z1): Late Sinian (Z2): Phanérozoïque (PH, phanérozoïque): il y a environ 543.000.000 années - l'avenir Paléozoïque (Pz, Paléozoïque ère): il y a environ 543 millions à 2,5 milliards d'années Paléozoïque précoce: il y a environ 542 millions ~ 416.000.000 années il y a environ 543 millions à 4,9 milliards d'années: Cambrian (de ∈, de période cambrienne) Cambrien The Cambrian Cambrien tardif Ordovicien (O, Ordovicien): il y a environ 4900000000 à 438000000 années (disons environ 488 300 000 - il y a 443 700 000 ans) Ordovicien précoce (O1): Ordovicien moyen (O2): Ordovicien (O3): il y a environ 438 millions à 4,1 milliards d'années: Silurien (S, Période Silurien) Silurien précoce (S1): Silurien moyen (S2): Silurien (S3): Top Silurien (S4): Paléozoïque tardif: il y a environ 416 millions ~ 251.000.000 années il y a 4,1 milliards à 354 millions d'années: Dévonien (D, Période Dévonien) Dévonien précoce Dévonien moyen Dévonien Carbonifère (C, Carbonifère): il y a environ 354 millions à 2,95 millions d'années Carbonifère (C1): Carbonifère (C2): il y a environ 295 millions à 2,5 milliards d'années: Permien (P, Période Permien) Au début du Permien (P1): Permien moyen (P2): Permien (P3): Mésozoïque (Mz, Mésozoïque): il y a environ 2,5 millions à 65,95 millions d'années Trias (T, Trias): il y a environ 2500-205 million années Au début du Trias (T1): Trias moyen (T2): Trias (T3): géochronologie / division stratigraphique Jurassique (J, période jurassique): il y a environ 205 millions ~ 137.000.000 années Jurassique précoce (J1): Jurassique moyen (J2): Jurassique (J3): Crétacé (K, période crétacée): il y a environ 137.000.000 années ~ 65950000 Crétacé inférieur (K1): Crétacé tardif (K2): Cénozoïque (Cz, Cénozoïque): il y a environ 65.950.000 années - l'avenir Paléogène (E, Période Paléogène): environ 6.500 millions à 23,3 millions d'années Paléocène (E1): environ 65,95 millions - il y a 55.800.000 années Eocène (E2): environ 55,8 millions - il y a 33.900.000 années Oligocène (E3): environ 33900000 à 23300000 Néogène (N, période Néogène): il y a environ 23300000-260000000 ans. Miocène (N1): il y a environ 23300000-530000000 années il y a environ 530 millions à 2,6 millions d'années: Pliocène (N2) Quaternaire (Q): il y a environ 260 millions années - l'avenir il y a environ 2,6 millions à 1,15 millions d'années: Pléistocène (Qp) Holocène (Qb): il y a environ 1.150.000 années - 1808 Anthropocène (Anthropocène époque): environ 1808 - Future Dans l'étude de l'histoire de l'évolution ou de processus géologiques sur Terre, et parfois ne pas besoin nécessairement de connaître l'heure exacte des événements géologiques, mais seulement besoin de connaître l'ordre entre eux, la seule méthode de détermination de la séquence des événements géologiques appelé géologique relatif temps âge géologique et est étroitement liée à l'évolution humaine. Échelle des temps géologiques: << [Référence Reading >> années-lumière, une grande durée .1 trillions de trillions années à 1oo années égal à .1 billions d'années-lumière ----- cent années lumière distance parcourue. astronomique. <Géologique international> Encyclopédie des ressources du réseau. Encyclopedia Britannica, Encyclopedia Americana, Encyclopédie de la vie, Wikipedia et autres géologiques]. ». Implicite Phanerozoic: Archéen (Ar): il y a 45 millions d'années, a duré 2,1 milliards d'années. Yin Duan Ordre: il y a 2,5 millions à 245 millions d'années, pendant 5 trillions d'années.  ordre: il y a 2,45 milliards à 242 millions d'années, pendant 3 trillions d'années. {{Voir [US] • James Preston avec l'histoire de la pensée géographique, [Traduction] R.J. Johnston, de la géographie et les géographes}} << Plus de référence géologique uniquement lire la géologie de l'étude et l'histoire des âges géologiques particulièrement importants et difficiles. Comme la recherche archéologique en géologie, histoire archéologique, anthropologie, archéologie, archéologique astronomie, complexe et difficile. Pour restaurer l'historique et réelle de l'étude de l'image de l'histoire naturelle, l'histoire des débuts de l'image de l'univers, l'image de l'évolution humaine, image de l'évolution biologique, est pas une mince affaire, la géologie ancienne géographie ancienne exploration paléontologique nécessite beaucoup de travail pour une longue le temps et les instructions de vérification empiriques. Par conséquent, les données ici est pour Thinking experts se réfèrent deviennent nécessairement concluante. stratigraphie, la paléontologie, la géologie, l'ancienne, l'anthropologie ancienne et d'autres disciplines en relation étroite avec d'autres disciplines, par exemple, l'astronomie, la cosmologie, la microbiologie, l'astrophysique, astrophysique géologie, la chimie céleste, astrophysique géologie, la géographie et les autres corps célestes, sinon, inévitablement biaisée . par exemple, la géologie de la lune, la recherche de la géologie de Mars et de découverte. Enfin, afin de comparer l'identification, contour arranger les choses pour Géologie Histoire devraient être divisés. >>. Maintenant, l'humanité est entrée dans le 21e siècle, ainsi que le développement de la société humaine et de l'histoire du monde va continuer à ouvrir nouveau chapitre de l'histoire, en particulier le développement de la science moderne et de la technologie, des outils de production humains, la production, les ressources de production, les ressources naturelles, la sagesse humaine et de l'innovation intellectuelle et le changement transforment radicalement le monde entier, la structure et la configuration de l'ensemble de la société humaine, changeant ainsi la nature des êtres humains et l'environnement, l'environnement mondial et l'environnement spatial. par exemple, le high-tech moderne, de l'aérospatiale, de l'information, de l'informatique, le génie génétique, la robotique applications, l'énergie atomique, l'agriculture de haute technologie, l'ingénierie des matériaux, le génie biomédical, de la technologie micro-électronique, la technologie marine, et est donc de plus en plus utilisé dans la monde et la communauté humaine, en particulier pour développer les planètes célestes en dehors de la Terre, le nouveau monde de la révolution industrielle révolution technologique, la révolution conduira la sagesse du monde de l'humanité. Certes, l'histoire humaine, l'histoire du monde, l'histoire naturelle et l'histoire de l'univers sera une nouvelle grandes évolutions. AD 2,050- année 2, 100 ans {en fonction du développement de la science moderne et de la technologie, l'économie mondiale moderne, la politique, militaire, la religion, la culture, l'éducation, les ressources, l'environnement, l'écologie, la population et tant de données, compter sur électronique modèle informatique, analyse sommaire des tendances historiques de développement dans le contexte, en se concentrant sur la société humaine et l'ensemble de l'évolution de l'histoire du monde et de développements, événements, etc., mais aussi une variété de progrès de la recherche scientifique et technologique selon l'étude généralement les changements dans l'environnement naturel, processus historique de l'univers et de la nature importante, et les mutations de l'univers, etc. la principale situation macro, à peu près la situation de l'évolution, pas la scène microscopique à partir des données de temps, les données de référence sont également grande, et le reste peut être utilisé comme complément d'information. Par conséquent, le laps de temps est très inégale.} [Les humains en Mars et retourner en toute sécurité sur la Terre. Lune de base, la base Mars a commencé le travail préliminaire. percées technologiques rapides marines, le développement de la percée Polar. Ralentissement de la croissance dans l'économie mondiale, les changements dans la situation change du monde. <Le changement climatique, l'activité sismique active. changement Polar. L'utilisation des ressources.> la croissance de la population humaine, les ressources et l'environnement se sont détériorées. La réforme du représentant de l'Armée / Secrétaire général des Nations Unies / présences permanents et non permanents du Tribunal des Nations / United International des Nations Unies / Nations Unies spécial des Nations / Unies Nations Unies Unis intensification de la concurrence, la guerre se produisent de temps en temps. Divers motif de conflit sujettes monde de changement progressif, la nouvelle révolution industrielle, la révolution technologique prend de l'ampleur. AD 21oo - AD 22oo ans Le nouveau mode de production Croissance lente du monde économique, après la forte poussée Planète révolution, le développement de l'univers de plus en plus puissant, base lunaire, la base Mars progressivement mis en place. développement Polar, le développement des océans, l'utilisation ou la modification du désert, l'utilisation de la montagne De plus en plus puissant de développement technologique, l'extension de la vie humaine, de surmonter les maladies incurables Lorsque la menace nucléaire du terrorisme nucléaire est encore enveloppé le monde dans certains domaines et les points chauds de conflit ont eu lieu, l'individu se battre fréquemment. La révolution industrielle, la révolution agricole des progrès substantiels, la concurrence nationale de lutte L'intégration croissante du monde, le monde change ASDC moulage préliminaire crise des ressources, la croissance démographique, les conflits, les guerres et les dangers locaux rôle de l'ONU et des droits renforcée. Agrandir le rôle des organisations régionales de l'Organisation des Nations Unies pour renforcer davantage le rôle de Les grandes questions de la paix et de la sécurité, le développement économique et les droits de l'homme. AD 23oo - AD 25OO ans Accélérer l'intégration de tous les aspects du monde / politique mondiale / économie mondiale / World Military / World Religions / mondiale de la science et de la culture / mondial de la technologie. la concurrence nationale et le développement inégal, différent, peuvent aller de pair, elle peut conduire, diriger le monde, ne peuvent pas être généralisées. Nouveau monde, un nouvel ordre mondial / Etats-Unis., La Russie, l'Inde, l'Europe, le Japon, l'Argentine et d'autres pays en développement, apparaissant dans une sonde unipolaire unipolaire ou multipolaire multi-polaire pour garder à la main, comme une course d'athlétisme, course de longue distance, le sprint, sprint, comme runner-up ou à égalité, mais finalement il y aura encore un chef de file dans le peloton de tête, ce qui conduit le monde. cette hégémonie dans le sens traditionnel est sensiblement différent. Revolution Universe AD AD 2,500- 3000 ans {ère post-industrielle. industrie intelligente moderne, l'agriculture moderne, un grand pas en avant. La situation dans le monde ont tendance à être stable, ce qui facilite la société humaine d'abord entré dans la planète. Lune homme, Mars et d'autres l'humanité interstellaire. La nouvelle structure économique économie / économie - la sagesse, et l'augmentation de la productivité sociale économique, les outils de production, mode de production, les rapports de production, des moyens de production. Une concurrence accrue dans le monde. Il y a des conflits occasionnels et la guerre. Lorsque des changements se produisent naturellement univers, la terre, la lune est évidente. les catastrophes naturelles de la Terre est plus fréquente. Deux pôles d'exploitation. Lune personne / Mars / Terre Année 3000 AD 5000 ans {société humaine entrés dans l'ère de l'intelligence artificielle, les immigrants étrangers forme de transformation. L'humanité entre dans les lunes de Jupiter et d'autres planètes. détecteurs humaines battant système solaire. 5, 2000 --- AD 8000 ans <humains dans une communauté de haute intelligence. Terre, Lune, Mars et d'autres planètes, célébreront la population de la Terre. la structure humaine économique, structure sociale, la structure politique, la structure culturelle, structures structure religieuse de la pensée, physique et structure mentale aura des changements importants, l'hérédité et de la variation.> la société de la Terre sera également des changements et des transformations importantes. AD 8, 2000 - 12, 2000 / symbole à partir de maintenant 2, ooo ans -1o, années ooo comme un symbole de la Terre {la révolution, la planète révolutionnaire, l'univers va complètement changer la révolution mondiale} Super sagesse des âges, la communauté du renseignement de super est entré en être. AD 15, 000 - AD 20, 2000 <Humanité, la terre, l'évolution de la population de la planète.> Sagesse robots biologiques apparaissent. Univers et changer la planète. sonde de détection de l'activité humaine dans la Voie Lactée et d'autres galaxies. L'humanité dans d'autres corps célestes. Très vie intelligente se trouve, mais un semblable microbes extrêmes. Planète état tactile de modèle social. [Changer la planète, le changement de système solaire. Planète Terre et de la survie humaine dans les défis et les risques intensifier graves. AD 30, 000 - AD 50, 000 ans {.. Les êtres humains vivent sur la Terre, la Lune et Mars et les autres corps célestes, la société des planètes se forme progressivement} technologie de survie de la planète se développer progressivement et se développer, y compris la Terre, la Lune, Mars et la système solaire sont tous dans le changement, la planète du monde. la survie et le développement plus difficile et dangereuse. Les changements dans l'univers. Planètes et crise sociale face aux défis des temps de l'humanité de la Terre, la révolution de la Terre en évolution. AD 100, 000 - AD ******* ans / 1oo, années ooo comme un signe de données macro-économiques sont utilisés pour les étudier, ce qui est plus en ligne plus près de l'histoire naturelle et humaine du monde réel et de l'évolution de l'évolution de trajectoire saut d'image. circuiter une conclusion, manifestement contraire à le vrai visage du développement historique, trompeur et déformé l'histoire et de l'histoire naturelle de l'histoire du monde de l'univers. AD 15o, années ooo ---- 2oo, années ooo AD 3oo, années ooo --1, ooo, histoire ooo ans {Annales, 1oo ans comme un point de repère important dans. AD 1,5oo, années ooo --- 2, ooo, années ooo Nouveau Nouveau astronomique géologique - univers chronologique ........... ********** ********* ----- Autres omises des années année de 2ooo ---- 2 ooo, ooo années, le laps de temps a été grande, trop grande astronomique, jusqu'à présent après le fait sans connexion, la longueur de l'histoire de l'histoire humaine de l'univers a assez nouveau géologique nouvelle astronomie - la chronologie de l'univers, abréviation: .. new new géologique astronomique - univers chronologique / NNACU. <Mutation nature de l'univers, la Terre et mettre en danger d'autres planètes. Les planètes et les autres parties de l'univers, une explosion. Une partie de la destruction ou de l'extinction humaine, les risques célestes, extinction biologique dangers et les catastrophes inévitables menacent l'humanité. Les humains de survivre et de continuer à continuer à survivre dans la planète et de l'univers. techniques Planète de survie développées. <Univers changements et les risques naturels, la diversité, par rapport à une variété de catastrophes à des centaines de société humaine de millions de fois la société humaine plus forte peut survivre, si la planète ou périr désintégration, explosion, effondrement, ce sont des problèmes extrêmement importants. donc, la solution du problème histoire naturelle des modifications de l'univers, ou mutations, c'est la clé. même si l'humanité entre Mars, la lune, est également confronté à ces problèmes de vie et de mort. (1) Natural Yu Zhou si l'effondrement global et l'effondrement? (2) si les humains ont assez de sagesse et la capacité d'échapper à cette indemne (3) la destruction de l'univers est inévitable ou a ses chances, y compris (4) reste nécessairement les plus critiques sont les suivantes:?.? la destruction de l'univers dans son ensemble ou la destruction partielle, ce qui importe l'Ukraine a évolué en quoi? tout est vide. Si cette théorie a été établie, la disparition inévitable de l'humanité et de l'univers. En d'autres termes, l'histoire humaine se terminera naturellement, déclarera la disparition de l'univers. Si l'univers il n'y a pas de destruction et de l'effondrement général, la vie humaine ou d'une autre vie va il y a de chances de survivre. c'est l'article avec un accent particulier sur les deux propositions majeures. la recherche scientifique et le raisonnement scientifique est parfois très important, mais à la fin encore besoin de beaucoup de données vérifiables et similaires. A. néant. B. mort thermique de la théorie de l'univers: la théorie de la mort de chaleur et de la théorie de la contraction cosmique est opposée à, dans ce cas, la gravité est pas forte, vous ne pouvez pas aller au-delà de l'expansion de l'univers semble dilatation donc exponentielle, la chaleur uniformément répartie dans l'univers est froid, sombre TLC, la finale sera un all-star par un périsse fin. C. événement Vacuum métastabilité: vide métastable événement existe dans l'univers est un état instable de base, l'univers que nous vivons dans un bord stable à balancer. Certains scientifiques disent que le raisonnement, les prochaines quelques milliards d'années, l'univers sera au bord de la subversion, puis à un moment l'univers de la bulle. D. A la mort d'un trou noir dans l'univers la plupart des substances sont entourées par un trou noir, la galaxie est concerné, il contient une variété d'étoiles en son centre il y a un trou noir supermassif. Lorsque les étoiles tombent dans le trou noir ou la galaxie «événement frontière», ils seront désintégrés, dans un univers fini, les trous noirs finiront par engloutir la majeure partie de la matière, le résidu final d'un univers sombre. E. cycle cosmique: la vision traditionnelle que l'univers est l'existence éternelle, dans la grande théorie bang singularité du modèle de l'univers de départ, l'univers est cyclique, il sera maintenu en permanence l'expansion et la contraction. F. théorie de la contraction cosmique: La théorie la plus importante de la façon dont l'univers est la théorie du Big Bang du début, d'abord seules singularités toutes les substances présentes dans la forme, ce qui est un point infiniment dense, pour une raison quelconque après l'explosion, il est difficile à l'expansion de la vitesse de confiance vers l'extérieur, culminant dans l'univers d'aujourd'hui. Sur la grande contraction et la théorie du big-bang contraire, la gravité finira par ralentir l'expansion, la stagnation et la contraction de l'univers. "La troisième loi de Kepler: T2 / R3 = K (= 4π2 / GM) {R: rayon de l'orbite, T: cycle K: constant (rien à voir avec la masse de la planète, en fonction de la qualité de l'objet central)} La loi de la gravité: F = GM1M2 / r2 (G = 6,67 × 10-11N • m2 / kg2, indications sur leur connexion) Gravité et accélération gravitationnelle corps célestes: GMm / R2 = mg; g = GM / R2 {R: rayon de corps céleste (m), M: masse de corps céleste (kg)} 4. satellites en orbite autour de la vitesse, vitesse angulaire, période: V = (GM / r) 1/2; ω = (GM / r3) 1/2; 1/2 {M T = 2¶ (r3 / GM): la masse corporelle centrale}. " 1. L'énergie sombre est trop grande, trop peu de matière noire, le taux d'expansion cosmique est trop grand, continuer à accélérer l'expansion et l'expansion éventuellement illimitée. 2 l'énergie noire et de la gravité de diverses substances dans l'univers était plat, l'univers va continuer à ralentir l'expansion, le taux d'expansion sera plus proche de zéro, mais ne peut jamais atteindre zéro. 3 moins d'énergie sombre, la gravité domine l'expansion de l'univers va continuer à ralentir, puis arrêter l'expansion, la contraction de direction, toute la matière dans l'univers, finalement reculer en un point, et tout recommencer. Dans le premier modèle (ie, univers fermé), l'expansion de l'univers était suffisamment lentement pour que la différence de gravité entre les galaxies dans l'expansion ralentit et finit par faire cesser. Puis commencer à proximité de chaque galaxie, l'univers a commencé à se rétrécir. la première sorte Dans le second modèle (espace ouvert), l'expansion de l'univers était si rapide que la gravité faire ralentir bien que certains ne pourraient le faire cesser. À proximité galaxies la distance en fonction du temps. Distance à zéro au début des dernières galaxies vitesse constante de distance les uns des autres; Dans le second type est toujours élargi modèle, l'espace supplémentaire est courbe, comme une selle. Par conséquent, dans ce cas, l'espace est infini. Enfin, il existe une troisième catégorie de solutions, l'expansion de l'univers est juste assez rapide pour éviter l'effondrement. galaxies de distance ont commencé à partir de zéro, augmente toujours. Cependant, bien que la vitesse de la galaxie à part ne sera jamais nulle, cette vitesse devient plus lent. Dans la troisième catégorie modèle Friedmann juste le taux critique de l'expansion, l'espace est plat (il est illimité). physicien théorique noté, humaine ou se désintégrer en rayonnement progressivement, après son effondrement a complètement disparu, ou parce que l'expansion rapide de l'univers de l'effondrement. Selon la théorie du Big Rip, l'énergie sombre fera la structure de l'univers déformé, conduisant à des premières galaxies lacrymogènes, suivis par un plus petit trous noirs, des planètes et des étoiles. Expansion de l'univers augmente la force de traînée, une fois qu'il atteint plus de galaxies se rassemblent Une autre façon possible de la fin de l'univers est appelé la "grande contraction." Si la substance dans l'univers en déclin au fil du temps, il y aura une forte contraction, ce qui entraîne les forces gravitationnelles deviennent dominantes. contraction gravitationnelle de l'univers conduit au résultat que les étoiles, les galaxies et les planètes entrent en collision les uns avec les autres, l'effondrement de l'univers a eu lieu. physicien théorique, a déclaré que certaines zones de l'univers a commencé à s'effondrer, l'effondrement de l'univers finira par dévorer son Selon la théorie de Higgs, le changement de phase dans dix milliards de seconde après le Big Bang a eu lieu, ce qui entraîne des changements dans la structure de l'espace-temps. cosmologie newtonienne: 1 a été observée à tout moment dans l'univers, le centre de l'univers étaient symétriques 2 en même temps de mesurer les points de l'univers, la densité sont égaux 3 petit univers dans toute autre conduite particule mesures relations A propos de la structure de l'univers sont: Gaitian dit: rond de jour comme feuilles de couverture place, comme jeu d'échecs. doctrine grecque et romaine antique d'univers original L'eau est l'origine de l'univers - Thales La couche la plus externe de l'univers est éteint jamais Skyfire dit - Pythagoras boule de cristal Multilayer dit - Aristote Terre est le centre - Ptolémée théorie occidentale de l'univers médiéval Après le Moyen Age, la cosmologie a été inclus dans le système scolaire, connaître la fin de la Renaissance Copernic basée sur des observations astronomiques à long écriture «corps célestes» de héliocentrique présenté. Bruno pense en outre que le soleil est pas le centre de l'univers, l'univers est infini, il n'y a pas de centre. Le modèle classique de l'univers première mécanique classique de Newton et euclidiennes concepts de la géométrie d'établir un système d'univers infini absolu. modèle cosmologique relativiste Einstein Novembre 1915 a publié une théorie générale de la relativité, l'espace et le temps ne peut pas être souligné substance seule, ils ont établi un modèle à quatre dimensions illimitées limitée de l'univers. Big Bang Theory Modèle L'expansion 20 ans plus tard, en raison de la radiation cosmique de fond a été confirmée, ainsi que la poursuite du développement de la physique nucléaire, le modèle shine Big Bang, d'être reconnu par le modèle standard de l'univers. modèles de la théorie des cordes de l'univers Peu à peu développé au siècle dernier, théorie des supercordes, à un autre point d'établir une plus ésotériques modèles de la théorie des cordes de l'univers, nous avons proposé le modèle de conception de l'univers de 11 dimensions. 1, sur un modèle d'espace fermé de l'univers, nous avons besoin de comprendre un espace fermé. Un espace fermé de tout point de vue, ne pas se tourner vers elle, tout va revenir à la même place, la même que tourner autour d'un point. 2, un modèle d'espace fermé de l'univers Espace fermé modèle de l'Univers règle est demi-espace de tous les points symétriques mouvement directionnel fermé au même rythme, le mouvement ne coïncide pas avec deux points, et de garder la symétrie. Maintenant est le «modèle du big bang de l'univers" est appelé le modèle standard de l'univers. En outre sont modèle cosmologique non-standard du modèle de l'univers. Tels que: le modèle d'état stable de l'univers, le modèle de cycle de l'univers, l'univers du film, l'univers miroir. . . et beaucoup plus. Une théorie, également connu comme la cosmologie du Big Bang. Par rapport aux autres modèles de l'univers, cela pourrait indiquer plus de faits d'observation. Son point principal est que nous pensons que l'univers a eu une période du chaud au froid au cours de l'évolution. Einstein équations de champ: R_uv-1/2 * R * g_uv = κ * T_uv (Rμν- (1/2) gμνR = 8GπTμν / (c * c * c * c) -gμν) Description: g_uv métrique, κ est un coefficient, peut être lent pour déterminer la théorie newtonienne. "_" Après la lettre indice "^" après la lettre en exposant. Signification: Matière espace d'énergie - impulsion (T_uv) = courbes de distribution espace (R_uv) solution de formulaire est: ds ^ 2 = Adt ^ 2 + Bdr ^ 2 + Cdθ ^ 2 + Ddφ ^ 2 Où A, B, C, D pour les composants g_uv métriques. Considérez l'énergie - solution T_uv dynamique de tenseur est plus complexe. Le plus simple est de faire T_uv égal à 0, 2. Les équations de champ contiennent le terme constante cosmologique: R_uv-1/2 * R * g_uv + Λ * g_uv = κ * T_uv Ici Λ est la constante cosmologique, qui est le sens physique du champ de vide de l'univers. Λ * g_uv le terme cosmologique. Si à partir de ds ^ 2 = Adt ^ 2 + Bdr ^ 2 + Cdθ ^ 2 + Ddφ ^ 2 [1] Où A, B, C, D pour les composants g_uv métriques. Ici ds est l'expression du degré de courbure de l'espace à une courte distance. Si compris dans le sens physique, alors, les éléments de l'univers à la droite, il est: R_uv-1/2 * R * = κ g_uv * T_uv-Λ * g_uv En 1929, la loi de l'astronome américain Hubble Hubble est proposé à partir des galaxies galaxie redshift et proportionnelle, Dans l'expansion de l'univers loin de l'autre, dit-il. État lorsque la distribution de la matière dans le déséquilibre de l'univers, la structure locale de la matière continuera de se développer et de contrat des changements, mais l'équilibre relatif entre la structure globale de l'univers ne changera pas. En 1994, l'Institut Carnegie de Friedman et al., Avec un âge estimé de l'univers lors du calcul du taux d'expansion de l'approche de l'univers, les valeurs calculées obtenu l'âge de 80-12000000000 un an. Toutefois, selon l'analyse des spectres stellaires, les plus vieilles étoiles de l'âge de l'univers de 140 à 160 millions d'années. Magnifique spirale est la nature de la forme la plus courante et la plus fondamentale des substances d'exercice. Ce phénomène de forme en spirale pour la compréhension de l'univers a un rôle important à éclairer, à une grande galaxie spirale, de petites molécules d'ADN sont produites dans une telle ligne en spirale. La nature ne reconnaît pas forme droite nature tout la structure de base de la matière sont de forme annulaire de la courbe de mouvement. De atomes et des molécules aux planètes, galaxies jusqu'à galaxies, superamas, sans exception, sans aucun doute, l'immensité de l'univers est un grand bain à remous. Par conséquent, la mise en place d'un «modèles de mouvement en spirale du modèle de l'univers" Origine de l'univers A propos de savoir si l'univers et comment initier le débat tout au long de l'histoire de l'ensemble du dossier. Fondamentalement, il existe deux écoles de pensée. Beaucoup de traditions premières, ainsi que le judaïsme, le christianisme et l'islam que l'univers est assez récente création du passé. Deux écoles de pensée croient que l'univers est fondamentalement inchangé au fil du temps. Parce que la vie humaine - l'ensemble de l'histoire enregistrée est si courte, l'univers n'a jamais été changé de manière significative au cours de cette période. Dans le cadre d'un univers stable et immuable, et si elle a toujours existé ou est limitée dans les longs problèmes de naissance passées. éruption Wormhole, il a dit que: dans un temps et dans l'espace pour ouvrir la porte de l'origine de l'univers que nous vivons maintenant. Dans de nombreux univers parallèle, il existe un univers parallèle très ordinaire, dans cet univers, la plus grande masse d'un trou noir est constamment englouti les autres corps célestes dans l'univers, sa qualité est en augmentation, assez grand pour détruire la totalité de sa forme physique gravitationnelle lorsque l'énergie libérée complètement après l'éruption arrêté wormhole, le temps et l'espace de la porte est fermée. Et émis par des particules de haute énergie, après une longue évolution, la formation de l'univers que nous vivons maintenant; l'éruption du vortex dans un univers parallèle qui, auparavant, un des objets ordinaires, ce qui explique pourquoi nous ne pouvons pas trouver le centre de l'univers de la raison. Selon la théorie du Big Bang, de nombreux scientifiques depuis des décennies a toujours soutenu notre univers est né il y a environ 140 millions d'années. Conformément à l'interprétation de cette théorie, l'univers formé dans un très petit volume et la densité des grandes substances explosives il y a 140 millions d'années, éjecté particules de matière et d'énergie, il est également depuis puis a commencé après l'explosion a eu le temps et la masse de l'espace et de l'énergie. Avant le big bang est arrivé, ni matière ni énergie, bien sûr, pas de vie. Système solaire Le système solaire est un système de corps célestes liés par la force gravitationnelle de la composition du soleil, sa portée maximale peut être étendue à environ 1 années-lumière. Les principaux membres du système solaire sont: solaire (étoile), les huit planètes (y compris la Terre), et d'innombrables astéroïdes, beaucoup satellite Les astronomes objet en analysant l'absorption ou la libération d'un objet atomique lumière est mesurée ou loin de près de la terre, la lumière dans une couleur ou de la fréquence d'occurrence unique. Lorsque l'objet loin de la Terre, ces fréquences se déplacent sur le spectre rouge. Modèle standard Big Bang montre que l'univers éclaté d'une singularité de densité infinie. Mais je ne sais pas ce qui a déclenché cette épidémie. En même temps. Pour la plupart des cosmologistes, l'explication la plus raisonnable de cohérence, dans l'univers peu après, une forme inconnue d'énergie de sorte que le jeune univers étendu de plus que la vitesse de la lumière. Dans ce modèle, l'univers est un film en trois dimensions Chaos dans l'explosion céleste, la naissance de l'Univers, à un certain moment ou l'état du nouveau-né n'a jamais nouveau-né, entre ses restes explosifs internes d'interaction, tout en formant la planète a progressivement formé galaxies, où les galaxies sont dans le processus de formation progressivement formé un multi -N Milky Way, la galaxie dans laquelle il y a un il y a un système solaire, le système solaire a huit planètes, dont l'un est la Terre nous, les humains vivent maintenant. La Terre est pas la vie il y a longtemps, quand ce relativement loin du soleil de la Terre, à l'ère glaciaire. Lorsque se rapprocher de la planète à partir du soleil, dans le système solaire le plus adapté à la vie dans la position d'initiation, et constituent les éléments matériels de la terre en ligne avec l'initiation de la vie, nous avons reçu après avoir rejoint de matières étrangères dans l'univers, la terre a commencé est apparu dans les mers primordiales, océan immaculé a commencé à la terre ce foyer après une longue période a donné naissance à la vie primitive, d'abord la croissance des plantes, l'évolution des plantes dans une certaine mesure, il y a eu une vie primitive simple, la vie primitive a commencé l'évolution de la vie, qui, y compris l'évolution progressive de la formation de l'homme préhistorique. les humains modernes préhistoriques que beaucoup plus grande tête, se penche également diffèrent beaucoup, le QI est pas élevé, ne peuvent être considérés comme un animal. A cette époque, la Terre a une atmosphère primitive, créant une longue évolution des plus grands êtres vivants de la planète - <Résumé de ce qui précède, les causes pertinentes de l'Univers, le modèle - la structure, l'état initial de l'univers et le résultat final de l'univers, donc une variété de théories et hypothèses cosmologiques, la recherche et la prévision de toutes sortes, ont leurs propres réalisations , les forces et les faiblesses de la décision de choisir, de localiser un, il est difficile. réalisations exploration scientifique naturel, la recherche est nécessaire pour soutenir une variété de la théorie de la recherche et de la théorie, et non pas dans le cas échoué à confirmer, puis sous la langue brisée, non-jugement, en particulier la cosmologie, l'astronomie et sonder une étude approfondie serait processus lointain et long . diverses théories et doctrines doivent être analysées et d'acquérir la certitude scientifique le plus précieux. après tout, est une sagesse humaine avancée des primates, en face du grand univers naturel profond, il est encore très petit enfant. découverte scientifique, même alors, avec succès, le théorème scientifique, il est absolument parfait, en particulier les humains triomphalement atterri sur la Lune, Mars, Jupiter, etc. après cela, il y aura plus de grandes découvertes et brillantes réalisations sur Terre - une partie de la race humaine sur La recherche de la Terre sera réécrite ou de remodelage. c'est la compréhension correcte de leur humanité, de comprendre la nature, rencontrant nouveau jalon dans l'univers. par exemple, la gravité viennent, pourquoi les étoiles structure de rotation spirale, les particules sont présentes lorsque l'univers a été formé il, univers, si l'univers unique ou multi-dimensionnelle si le même état, état différent, l'état initial de la particule de Dieu de la façon dont l'état du Big Bang devant l'univers, la destruction de l'univers est la matière à fond monticule l'a fait, la vie humaine ou d'une autre vie avancée de la planète et de la viabilité de l'univers, et ainsi de suite. La question cruciale est pas résolu, d'autres théories et doctrines, il est difficile à justifier. Même le plus grand scientifique est difficile de faire leurs théories impeccable. Le résultat final de l'univers, ou si la poursuite de l'effondrement, et si les humains peuvent survivre à l'extinction ou la destruction, le point clé est que l'univers est encore deux problèmes majeurs: 1. L'explosion détruit l'univers effondrement destruction jetable ou périodique répéter? 2. Répartition de l'univers avec l'état, état différent de l'univers au début et états finaux, ainsi que la planète et synchrone humaine, asynchrone. ? Tout ou en partie, l'évolution de l'évolution de c'est l'essence du problème, cela est l'univers - la théorie de la vie de loin la question la plus importante. Peut-être pas à résoudre le gros problème, il est difficile de parvenir à un progrès révolutionnaire. Hypothèse peu importe la puissance est également indissociable des études de simulation expérimentales doit, sinon, il va devenir aéroportée Cour étreinte. Sciences naturelles a souligné les tests de vérification de l'observation de l'observation empirique, la perte de ces fans seront égarés. Heliocentric - débat géocentrique a duré des centaines d'années, la théorie de l'évolution est réalisée sur des centaines d'années de débat, il est la preuve. Autour à 10h00 le 30 Juin 1860, le Président de la Conférence de l'Association britannique pour l'avancement des sciences, s'il vous plaît la présentation de la scène Wilberforce Bishop. Il a dit: "Dieu et l'Eglise ne sont pas contre la science, mais ne peut pas tolérer le blasphème, la pseudo-science humaine insultant, la théorie de M. Darwin sur l'évolution est la pseudo-science, il est le manque de preuves scientifiques concluantes puissante de style, tout à fait hypothétique , pas enregistré humble hypothèse pour soutenir l'ensemble de la thèse, par conséquent, la perspicacité religieuse, et la communauté scientifique ne soutiendra pas cette théorie absurde, "at-il souligné :." frontières entre les êtres humains et les choses dans le monde est clair, a seulement des efforts de radis ne importe comment impossible l'évolution de l'adulte "soudainement, Huxley Wilberforce main pointant vers le public et demande:« ici même M. Huxley dit qu'il est un descendant des grands singes, alors je voudrais demander à ce monsieur :? ancêtres singes que l'un des votre grand-père, votre grand-mère ou de ce côté de celui-ci, "Wilberforce tribune au milieu des applaudissements et des rires, et beaucoup de gens ont applaudi son discours. Ensuite, les gens jettent leur dévolu Huxley, à ce moment, Huxley même souriant assis à côté du président de la Royal Society Brody dit doucement :. "Dieu lui a remis ma main." Please Henslow a annoncé Huxley a pris la parole, Huxley dit lentement: «Si je dois choisir mes ancêtres dans les deux suivants: un côté est le singe, un côté est une figure influente, et ce chiffre, mais la confusion dans les discussions scientifiques sérieuses en noir et " == Fangruida Selected quotes == Fangruida famous classic 100 New fangruida有名な古典的な100新しいです fangruida célèbre classique 100 Nouveau https://www.youtube.com/watch?v=SS_Sjp-HzYg https://archive.org/details/FangruidaIsm [[hasdpus.wikia.com/wiki/File:Fangruida]] == '''Bold text'' == <syntaxhighlight lang="text" style="font-weight:bold;"> # Numbered list item </syntaxhighlight> fangruida famoso clásico 100 Nueva World things can last forever, is a great natural, it is a great language. 世界上可以永存的东西,一个是伟大的自然,一个是伟大的语言。 Les choses du monde peuvent durer pour toujours, est un grand naturel, il est une grande langue. Мировые вещи могут длиться вечно, является отличным естественным, это великий язык. Cosas del mundo pueden durar para siempre, es un buen natural, es un gran lenguaje. 谁都想征服世界,殊不知,只有首先征服人性的劣质和世界的疾苦才能步入世界的天堂。 Каждый хочет, чтобы завоевать весь мир, все знают, только первый, чтобы завоевать мир человечества уступает и страдания в мир в рай. Todo el mundo quiere conquistar el mundo, todo el mundo sabe, sólo el primero en conquistar el mundo de la humanidad inferior y el sufrimiento en el mundo al paraíso. Tout le monde veut conquérir le monde, tout le monde sait, seul le premier à conquérir le monde de l'humanité inférieure et de la souffrance dans le monde au paradis. Everyone wants to conquer the world, everyone knows, only the first to conquer the world of humanity inferior and suffering into the world to paradise. 誰もが劣ると楽園に世界に苦しむ人類の世界を征服するためにのみ、最初、誰もが知っている、世界を征服しようとしています。 fangruida знаменитый классический 100 Новый 大自然如此美丽多彩,一会儿百鸟飞荧,一会儿又落英缤纷。。。。。。自然,自然界和人类社会莫不如此,既美丽又玄妙,美在无穷玄妙之中,玄在无限美丽之内。虽然人们不时看到十分鲜艳夺目的花卉花魁之类,散落在田园四处,但是,真正映入人们眼帘的确是平淡无奇的花朵野草,而且簇簇团团,漫山遍野在奔放。 Nature is so beautiful and colorful, while one hundred bird flew Ying, while another fallen flowers. . . . . . Nature, nature and human society has been true, beautiful and mysterious, mysterious beauty in the infinite being, infinite mysterious beauty within. Although people often see very colorful flowers courtesan like, scattered in four rural, but the real thing that catches people's eye is really bland grass flowers and clusters of clouds, mountains and plains in bold. La nature est si belle et colorée, tandis que cent oiseau volait Ying, tandis qu'un autre des fleurs tombées. . . . . . Nature, la nature et la société humaine a été vrai, beau et mystérieux, beauté mystérieuse dans l'être infini, infinie beauté mystérieuse au sein. Bien que les gens voient souvent des fleurs très colorées comme courtisan, dispersés dans quatre zones rurales, mais la vraie chose qui attire l'attention des gens est des fleurs d'herbe vraiment fade et amas de nuages, les montagnes et les plaines en gras. Природа настолько красиво и красочно, в то время как сто птица полетела Ин, а другой упал цветы. , , , , , Природа, природа и человеческое общество было верно, красивая и загадочная, таинственная красота в бесконечном существе, бесконечная таинственная красота изнутри. Хотя люди часто видят очень яркие цветы куртизанкой, как, разбросанные в четырех сельских, но реальная вещь, которая бросается в глаза людей действительно мягкий травы цветы и скопления облаков, горы и равнины выделены полужирным шрифтом. Die Natur ist so schön und bunt, während hundert Vogel Ying flog, während eine andere Blumen gefallen. . . . . . Natur, die Natur und die menschliche Gesellschaft war wahr, schön und geheimnisvoll , geheimnisvolle Schönheit in der unendlichen Wesen, unendlich geheimnisvolle Schönheit im Inneren. Obwohl Menschen sehen oft sehr bunten Blumen Kurtisane wie, in vier ländlichen verstreut, aber die eigentliche Sache, die Menschen Auge fällt, ist wirklich fad Gras Blumen und Cluster von Wolken, Berge und Ebenen fett gedruckt. La naturaleza es tan hermoso y colorido, mientras que un centenar de pájaro voló Ying, mientras que otro flores caídas. . . . . . La naturaleza, la naturaleza y la sociedad humana ha sido verdadero, bello y misterioso, belleza misteriosa en el ser infinito, infinito misteriosa belleza dentro. Aunque la gente suele ver flores muy coloridas como cortesana, dispersos en cuatro rurales, pero la cosa real que llama la atención de la gente es hierba flores muy sosa y cúmulos de nubes, las montañas y llanuras en negrita. 百鳥が別落ち花ながら、英飛んながら自然は、とても美しいとカラフルです。。。。。。自然、自然と人間社会は無限の神秘的な美しさの中に、無限であることに、真の美しさと神秘的な、神秘的な美しされています。人々はしばしば4農村に散在非常にカラフルな花の遊女などを参照して、人々の目をキャッチ実物は草の花と太字の雲、山と平野のクラスタ本当に味気ないです。が、 Happiness is the greatest and most beautiful words, even though it is very far away and long. For individuals, families, come and go; but for the whole mankind, and happiness can be sustained at a constant, is still confused things. Fantasy mankind has entered heaven, or at best is an avid self-mockery of it. 幸福は、それは非常に遠く離れて長い場合であっても、最大かつ最も美しい言葉です。個人、家族のために、行ったり来たり、しかし全体の人類のため、と幸福を一定に維持することができますが、まだ物事を混同されています。ファンタジー人類は天に入った、または最高の状態でそれの熱心な自己嘲笑です。 Счастье это самые большие и самые красивые слова, несмотря на то, что это очень далеко и долго. Для физических лиц, семей, приходят и уходят, но и для всего человечества, и счастье может быть устойчивым при постоянной, до сих пор путают вещи. Фантазия человечество вступило небо, или в лучшем случае является заядлым собственной издевательство него. Le bonheur est les mots les plus grands et les plus beaux, même si elle est très loin et longtemps. Pour les particuliers, les familles, aller et venir, mais pour toute l'humanité, et le bonheur peuvent être maintenus à une température constante, est encore des choses confuses. Fantastique humanité est entrée dans le ciel, ou au mieux est une auto-dérision avide de lui. La felicidad es el mayor y más bellas palabras, a pesar de que está muy lejos y largo. Para los individuos, familias, van y vienen, sino para toda la humanidad, y la felicidad se pueden mantener a una temperatura constante, es todavía cosas confusas. La humanidad de la fantasía ha entrado en el cielo, o en el mejor es un ávido auto-burla de ella. Glück ist die größten und schönsten Worte, auch wenn sie sehr weit weg und lang ist. Für Einzelpersonen, Familien, kommen und gehen, sondern für die ganze Menschheit, und das Glück auf einem konstanten aufrechterhalten werden, ist immer noch verwirrt Dinge. Fantasie hat die Menschheit eingetragen Himmel, oder bestenfalls ist ein begeisterter Selbstironie davon. 幸福是个最伟大最艳丽的字眼,尽管它十分遥远而且漫长。对于个人,家庭来说,来去匆匆;而对于整个人类来说,获得幸福并能持久以恒,仍然是迷茫之物。幻想人类已经进入天堂,充其量是狂热或者自我解嘲而已。 Die Welt ist immer brillant duftenden Gras. Flatternde Schmetterlinge, Vögel haben lange überfällig , und der Wind heult Sandsturm Abdeckung, desto mehr Kälte blizzard Angriff von Zeit zu Zeit. . . . . Wenn Sie in der großen Natur frönen, werden Sie durch das Bewußtsein begleitet und kam mit der Natur, dass die menschliche Gesellschaft als solche zu erkennen. Verstehen Sie das nicht, wird es verwirrt, erschöpft, und damit zu einem Verlust, Bremsfedern und gehen. Le monde est toujours herbe parfumée brillante. Flottement papillons, les oiseaux ont depuis longtemps, et le couvercle de la tempête de vent hurlant, l'attaque blizzard plus froid de temps en temps. . . . . Lorsque vous vous livrez dans le grand monde naturel, vous serez accompagné par la conscience et est venu se rendre compte que la société humaine en tant que telle avec la nature. Ne pas comprendre cela, il sera confus, épuisé, et donc à une perte, le frein de plumes et aller. El mundo es siempre brillante hierba fragante. Aleteo de las mariposas, las aves tienen desde hace mucho tiempo, y la cubierta de la tormenta de arena aullido del viento, el ataque tormenta de nieve más fría de vez en cuando. . . . . Cuando se cae en el gran mundo natural, será acompañado por la conciencia y se dieron cuenta de que la sociedad humana como tal con la naturaleza. No entiendo esto, será confundido, exhausto, y por lo tanto en una pérdida, de la pluma de freno y listo. Мир всегда блестящие ароматные травы. Порхающими бабочками, птицы уже давно назрела, и ветер выл песчаная покров, тем более холодная метель атаки время от времени. , , , , Когда вы предались в большом естественном мире, вы будете сопровождаться сознанием и пришел к выводу, что человеческое общество как таковое с природой. Не понимаю этого, он будет смущен, исчерпаны, и, следовательно, в недоумении, тормоза перо и идти. 世界は常に華麗な香りの草です。蝶ひらひら、鳥は長年の懸案があり、風ハウリング砂嵐カバー、随時、より冷たい吹雪の攻撃。。。。。あなたは素晴らしい自然界にふけるとき、あなたは意識が伴うと自然とのようなその人間社会を実現するために来たことになります。このことを理解していない、それは、混乱使い果たし、したがって損失、ブレーキ羽でとなります。 世界是永远灿烂芬芳的芳草地。有蝴蝶翩翩飞舞,有鸟雀姗姗来迟,还有狂风怒号的风沙盖地,更有寒流暴雪不时侵袭。。。。。当你沉醉在伟大的自然世界里,你一定会意识和感悟到人类社会伴同自然界一样如此。不理解这些,就会陷入迷茫,困顿,因而不知所措,刹羽而归。 The world is always brilliant fragrant Grass. Fluttering butterflies, birds have long overdue, and the wind howling sandstorm cover, the more cold blizzard attack from time to time. . . . . When you indulge in the great natural world, you will be accompanied by consciousness and came to realize that the human society as such with nature. Do not understand this, it will confused, exhausted, and therefore at a loss, brake feather and go. The natural world is very chaotic, human society is only in the past and all existing historical and a natural history of the universe great imaging only. Of course, this does not mean that human history and natural history of the universe is just a wonderful tortuous history of coincidence or coupling. On the contrary, human society and the whole of human history precisely as possible to adapt and adjust to reflect the natural history of the universe is essential to human life gradually spun off from the natural world and make a difference. But this does not mean that human nature can be completely separated from the society. Естественный мир очень хаотично, человеческое общество только в прошлом, и все существующие исторические и естественной истории Вселенной большой только визуализации. Конечно, это не означает, что человеческая история и естественная история вселенной просто замечательный извилистый история совпадения или сочетания. Напротив, человеческого общества и всей человеческой истории как можно более точно адаптировать и корректировать с учетом естественной истории Вселенной имеет важное значение для человеческой жизни постепенно отделилась от мира природы и сделать разницу. Но это вовсе не означает, что человеческая природа может быть полностью отделена от общества. 自然界では非常に混沌としている、人間社会は過去にあり、唯一の宇宙の偉大なイメージングのすべての既存の歴史と自然の歴史。もちろん、これは人間の歴史と宇宙の自然史が偶然またはカップリングのちょうど素晴らしい曲がりくねった歴史であることを意味するものではありません。逆に、人間社会と人類の歴史の全体的に可能な限り正確宇宙の自然史を反映するように適応し、調整して徐々に自然界から分社し、その差を作る人間の生活に不可欠です。しかし、これは人間の本性を完全に社会から分離することができるという意味ではありません。 The natural world is very chaotic, human society is only in the past and all existing historical and a natural history of the universe great imaging only. Of course, this does not mean that human history and natural history of the universe is just a wonderful tortuous history of coincidence or coupling. On the contrary, human society and the whole of human history precisely as possible to adapt and adjust to reflect the natural history of the universe is essential to human life gradually spun off from the natural world and make a difference. But this does not mean that human nature can be completely separated from the society. El mundo natural es muy caótico, la sociedad humana es única en el pasado y toda la historia natural existente histórica y una de sólo el gran universo de imágenes. Por supuesto, esto no significa que la historia humana y la historia natural del universo es sólo una tortuosa historia maravillosa de coincidencia o de acoplamiento. Por el contrario, la sociedad humana y la totalidad de la historia humana, precisamente como sea posible para adaptarse y ajustarse para reflejar la historia natural del universo es esencial para la vida humana hilado progresivamente del resto del mundo natural y hacer una diferencia. Pero esto no quiere decir que la naturaleza humana puede separarse completamente de la sociedad. Die natürliche Welt ist sehr chaotisch, die menschliche Gesellschaft ist nur in der Vergangenheit und alle vorhandenen historischen und eine natürliche Geschichte des Universums große Bildgebung nur. Natürlich bedeutet dies nicht, dass die menschliche Geschichte und Naturgeschichte des Universums nur eine wunderbare verschlungenen Geschichte der Zufall oder Kupplung ist. Im Gegenteil, die menschliche Gesellschaft und die gesamte Geschichte der Menschheit genau wie möglich anzupassen und passen die Naturgeschichte des Universums zu reflektieren, um das menschliche Leben wesentlich ist, nach und nach aus der natürlichen Welt und machen einen Unterschied ausgegliedert . Aber dies bedeutet nicht, dass die menschliche Natur kann vollständig von der Gesellschaft getrennt werden. 自然世界十分混沌,人类社会只不过是以往和现存的一切自然历史和宇宙历史的一种伟大的显像而已。当然,这并不等于说,人类历史和自然历史宇宙历史仅仅是一种美妙曲折的巧合或耦合。相反,人类社会和整个人类历史恰恰适应并且尽可能适应反映自然宇宙历史的本质性才能逐步把生命人类从自然界剥离出来而有所作为。但这决不意味着人类可以彻底游离于自然社会。 Je mehr Menschen dem Himmel näher, Weisheit und menschliche Erkenntnis, die anfälliger für menschliche Intuition. So bringt Menschen in ein neues Reich, zu all dem veralteten Konzept des Denkens und veraltet verlassen Traditionen. Natürliche Revolution, die Revolution des Universums, die genetische Revolution, subversive der menschlichen Veränderung. Los seres humanos más cerca del cielo, la sabiduría y la cognición humana, más propenso a la intuición humana. Por lo tanto llevar seres humanos a un nuevo reino, a todo el concepto anticuado de pensar y tradiciones obsoletas abandonados. Revolución natural, la revolución del universo, la revolución genética, subversivo de cambio humano. The more humans closer to heaven, wisdom and human cognition, the more prone to human intuition. Thus bringing human beings to a new realm, to all the outdated concept of thinking and outdated traditions abandoned. Natural revolution, the revolution of the universe, the genetic revolution, subversive of human change. Чем больше людей ближе к небу, мудрости и человеческого познания, тем более склонны к человеческой интуиции. Таким образом, в результате чего людей к новой области, ко всем устаревшей концепции мышления и устаревших традиций заброшенных. Естественная революция, революция Вселенной, генетическая революция, подрывная человеческого изменения. より多くの人間は、天、知恵と人間の認知に近い人間の直感になりやすいです。このような思考と放棄された古い伝統のすべての時代遅れの概念に、新しい領域に人間をもたらします。人間の変化の破壊ナチュラル革命、宇宙の革命、遺伝的革命、。 人类越接近天国,人类的智慧和人类的认知越易产生直觉。从而把人类自身提升到新的境界,把一切陈旧思维观念和过时的传统抛弃。自然革命,宇宙革命,基因革命,颠覆性的人类变革。 Youth burning like a flame, like love, like flowers in full bloom, like the wealth of the sea pearls shine, and determined to struggle like Pegasus gallop gallop across the vast land. Молодежь горит, как пламя, как и любовь, как цветы в полном расцвете, как богатство морского жемчуга блеск, и решил бороться как Pegasus галоп галоп через обширные земли. Jóvenes ardiendo como una llama, como el amor, como las flores en plena floración, al igual que la riqueza de las perlas del mar brilla, y decidido a luchar como Pegasus galope galope a través de la vasta tierra. Jeunesse brûlant comme une flamme, comme l'amour, comme des fleurs en pleine floraison, comme la richesse des perles de mer briller, et déterminé à lutter comme Pegasus galop au galop à travers le vaste territoire. 青少年海の真珠の輝きの富のように、満開の花のように、愛のように、炎のよう燃える、そして広大な土地を横断ペガサスギャロップギャロップのように苦労することに決定。 青春像火焰一样燃烧,爱情像鲜花一样怒放,财富像大海珍珠一样闪耀,立志和奋斗像飞马奔腾驰骋在辽阔的大地上。 La vida y la sabiduría es la percepción y la cognición de la naturaleza, la naturaleza... Жизнь и мудрость восприятие и познание природы, природа никогда не будет человеческого восприятия и познания. 生命和智慧可以感知和认知自然界,自然界永远不会感知和认知人类。 La vie et la sagesse est la perception et la connaissance de la nature, la nature ne sera jamais la perception humaine et de la cognition. Life and wisdom is perception and cognition of nature, nature will never be human perception and cognition. 生活と知恵は、自然の知覚と認知、自然は人間の知覚と認知されることはありませんです。 The universe is so enormous, so that everything in nature is full of magical transformation, and for humans, is not so much a great tragedy might as well say it is God's good fortune. 宇宙如此变化无穷,使得自然界中的一切都富有变换魔力,而对于人类来说,与其说是莫大的悲哀倒不如说是上帝的造化而已。 自然の中ですべてが魔法の変換に満ちている、と人間のため、あまり大きな悲劇は同様にそれは神の幸運であると言うかもしれないように、宇宙は、とても巨大です。 L'univers est si énorme, de sorte que tout dans la nature est pleine de transformation magique, et pour l'homme, ne sont pas tellement une grande tragédie pourrait aussi bien dire qu'il est la bonne fortune de Dieu. El universo es tan enorme, de modo que todo en la naturaleza está llena de transformación mágica, y para los seres humanos, no es tanto una gran tragedia puede ser que también dicen que es buena suerte de Dios. Вселенная настолько огромна, так что все в природе полна магической трансформации, и для людей, не столько большая трагедия, возможно, также говорят, что это Божья благодать. Incluso en un pequeño planeta de los dioses humanos, es difícil crear y representar el paraíso eterno más perfecto; sólo en la vasta extensión de edificios vacíos y la libertad para estirar sobre las alas. Même dans une petite planète des dieux humains, il est difficile de créer et de représenter le paradis éternel la plus parfaite, mais seulement dans la vaste étendue des bâtiments vides et la liberté d'étirer sur les ailes. Даже в маленькой планете богов человека, то трудно создать и изобразить самый совершенный вечный рай, только в обширное пространство пустых зданий и свободы, чтобы растянуть над крыльями. でも人間の神々の小さな惑星で、最も完璧な永遠の楽園を作成し、表現することは困難であり、唯一の空の建物や自由の広大で翼の上にストレッチします。 Even in a small planet of human gods, it is difficult to create and portray the most perfect eternal paradise; only in the vast expanse of empty buildings and freedom to stretch over the wings. Selbst in einem kleinen Planeten von menschlichen Götter, ist es schwierig, die perfekte ewige Paradies zu schaffen und darzustellen, nur in die Weite von leer stehenden Gebäuden und Freiheit über die Flügel zu strecken. 人类在狭小的星球即使鬼斧神工,也难以造就和刻画出最完美的万世天堂;只有在广阔无垠的宇空才能舒展自由和理想的翅膀。 Only human beings can be free in the real universe, space-time in nature, freedom. Freedom is the liberation of bondage, bondage to freedom of betrayal. Sólo los seres humanos pueden ser libres en el universo real, el espacio-tiempo en la naturaleza, la libertad. La libertad es la liberación de la esclavitud, la servidumbre a la libertad de traición. Nur der Mensch kann in der realen Welt, Raum-Zeit in der Natur, Freiheit frei sein. Freiheit ist die Befreiung von der Knechtschaft, Knechtschaft in die Freiheit des Verrats. Seuls les êtres humains peuvent être libres dans l'univers réel, l'espace-temps dans la nature, la liberté. La liberté est la libération de l'esclavage, la servitude à la liberté de la trahison. Только человеческие существа могут быть свободными в реальной Вселенной, пространства-времени в природе, свобода. Свобода есть освобождение от рабства, рабства на свободу предательства. 唯一の人間は自由、自然の中で本物の宇宙、時空間で自由にすることができます。自由とは、裏切りの自由への束縛束縛の解放です。 人类只有在宇宙时空中获得自由才能真正在自然界自由。自由是对束缚的解放,束缚是对自由的背叛。 世界は常に様々な副素晴らしいをカバーするのにカラフルますが困難であったが。世界の前にはその反対であることが多い様々な醜いと奇妙なの登場です、壮大で美しいです。 世界虽然五彩缤纷但始终难以掩盖它的各种副精彩。在世界的正面是瑰丽美好,在它的反面往往出现各种丑陋和离奇。 Alors que le monde a toujours été coloré mais difficile à couvrir ses différents merveilleux adjoint. En face du monde est magnifique et belle, dans son contraire est souvent l'émergence de divers laid et bizarre. В то время как мир всегда был красочным, но трудно охватить его различные заместитель замечательно. В передней части мира великолепный и красивый в его противоположность часто появление различных некрасиво и странно. While the world has always been colorful but difficult to cover its various deputy wonderful. In front of the world is magnificent and beautiful, in its opposite is often the emergence of various ugly and bizarre. Während die Welt war schon immer bunt, aber schwierig zu seinen verschiedenen Stellvertreter wunderbar decken. Vor der Welt ist großartig und schön, in ihr Gegenteil oft die Entstehung der verschiedenen hässlich und bizarr ist. Mientras que el mundo ha sido siempre colorido pero difícil de cubrir sus diversas adjunto maravillosa. Delante del mundo es magnífico y hermoso, en su opuesto es a menudo la aparición de diferentes feo y extraño. La historia humana es muy largo, siempre y cuando los méritos de la historia natural. Mundo de fantasía es en realidad un carril directamente a ellos y los demás colocado en el mundo de fantasía ingenua. 人类历史是十分漫长的,犹如自然历史一样漫长曲直。幻想世界是直车道实际上是将自己和他人摆放在天真的童话世界里。 Die Geschichte der Menschheit ist sehr lang, so lange wie wenn die Verdienste der Naturgeschichte . Fantasy-Welt ist eigentlich eine gerade Spur zu sich selbst und in der naiven Märchenwelt platziert andere. Human history is very long, as long as if the merits of Natural History. Fantasy world is actually a straight lane to themselves and others placed in the naive fairy tale world. 人類の歴史は、長い自然史のメリットかのように、非常に長いです。ファンタジーの世界は実際にナイーブなおとぎ話の世界に配置された自分自身と他人にまっすぐレーンです。 Человеческая история очень долго, до тех пор, как будто достоинствах естественной истории. Мир фантазий на самом деле прямая дорожка к себе и другим помещены в наивном мире сказки. 对于自然界来说,人类生命的存在与否根本无关紧要;而对于生命动物人类来说,自然界和宇宙的一举一动都直接关联到人类的生死存亡。宙斯和上帝,自然与生命,妙趣横生。生生死死,死死生生,世代繁衍,延续者生命人类的历史。 For nature, the presence or absence of human life not matter; and animal life for humans, nature and the universe movements are directly linked to human survival. Zeus and God, nature and life and fun. Life and death, life and life and death, generation reproduction, for continuation of the life history of mankind. 自然は、人間の生命の有無は関係ありませ;および動物の生命人間のため、自然や宇宙の動きは、直接人間の生存にリンクされています。ゼウス神、自然と生活と楽しいです。人類の生活史の継続のための生と死、生活や人生と死、世代繁殖、。 Для природы, наличие или отсутствие человеческой жизни не имеет значения, и жизнь животных для человека, природы и движений вселенной напрямую связаны с человеческого выживания. Зевс и Бог, природа и жизнь и веселье. Жизнь и смерть, жизнь и жизнь и смерть, воспроизводство поколения, для продолжения истории жизни всего человечества. Car la nature, la présence ou l'absence de la vie humaine pas d'importance, et la vie des animaux pour les humains, la nature et les mouvements de l'univers sont directement liés à la survie humaine. Zeus et Dieu, la nature et de la vie et de plaisir. La vie et la mort, la vie et la vie et la mort, la reproduction de génération, pour la continuation de l'histoire de la vie de l'humanité. Por naturaleza, la presencia o ausencia de la vida humana no importa, la vida animal y para el ser humano, la naturaleza y los movimientos del universo están directamente vinculadas a la supervivencia humana. Zeus y Dios, la naturaleza y la vida y la diversión. La vida y la muerte, la vida y la vida y la muerte, la reproducción generación, para la continuación de la historia de vida de la humanidad. 脚踩着大地,头顶着蓝天,一手抚摩者地球,又一只手抚摩着月球或火星,这大概就是新世纪神话巨人。 Los pies en la tierra, el cielo azul de sobrecarga, un roce mano en la Tierra, y una mano acarició la Luna o Marte, que es probablemente el nuevo siglo, el mito de los Gigantes. Ноги на земле, голубое небо над головой, с одной стороны, потертости на Земле, и рука гладила на Луну или Марс, который, вероятно, новый век, миф гигантов. Pied sur la terre, le ciel au-dessus bleu, un frottement de la main sur la Terre, et une main caressa la lune ou Mars, qui est probablement le nouveau siècle, le mythe des Giants. Foot on the earth, the blue sky overhead, one hand rubbing on Earth, and a hand stroked the moon or Mars, which is probably the new century, the myth of the Giants. 地球上の足は、青空のオーバーヘッド、地球上の1つの手の擦れ、および手はおそらく新しい世紀、巨人の神話である、月や火星を、撫で。 == Mars and Mars landing technology research focused on a major breakthrough/Fangruida == Fangruida-Mars and Mars landing technology research focused on a major breakthrough Fangruida: human landing on Mars 10 cutting-edge technology           [Fangruida- human landing on Mars 10 innovative and sophisticated technologies] https://archive.org/ https://www.youtube.com/watch?v=ZeULfiG-3Rs [http://blog.nationalarchives.gov.uk/blog/national-archives-library blog.nationalarchives.gov.uk/blog/national-archives-library]      Aerospace Science and space science and technology major innovation of the most critical of sophisticated technology R & D project -------------------------------------------------- ------------- Aerospace Science Space Science and Technology on behalf of the world's most cutting-edge leader in high technology, materials, mechatronics, information and communication, energy, biomedical, marine, aviation aerospace, microelectronics, computer, automation, intelligent biochips, use of nuclear energy, light mechanical and electrical integration, astrophysics, celestial chemistry, astrophysics and so a series of geological science and technology. Especially after the moon landing, the further development of mankind to Mars and other planets into the powerful offensive, the world's major powers eager to Daxian hand of God, increase investment, vigorously develop new sophisticated technology projects for space to space. Satellite, space station, the new spacecraft, the new space suits, the new radiation protection materials, intelligent materials, new manufacturing technology, communications technology, computer technology, detector technology, rover, rover technology, biomedical technology, and so one after another, is expected to greater breakthroughs and leaps. For example, rocket technology, spacecraft design, large power spacecraft, spacesuits design improvements, radiation multifunctional composite materials, life health care technology and space medicine, prevention against microgravity microgravity applicable drugs, tracking control technology, landing and return technology. Mars lander and returned safely to Earth as a top priority. Secondly, Mars, the Moon base and the use of transforming Mars, the Moon and other development will follow. Whether the former or the latter, are the modern aerospace science, space science basic research, applied basic research and applied research in the major cutting-edge technology. These major cutting-edge technology research and innovation, not only for human landing on Mars and the safe return of great significance, but for the entire space science, impact immeasurable universe sciences, earth sciences and human life. Here the most critical of the most important research projects of several sophisticated technology research and development as well as its core technology brief. Limit non-scientific techniques include non-technical limits of technology, the key lies in technology research and development of technology maturity, advanced technology, innovative, practical, reliable, practical application, business value and investment costs, and not simply like the idea mature technology achievements, difficult to put into things. This is the high-tech research and development, testing, prototype, test application testing, until the outcome of industrialization. Especially in aerospace technology, advanced, novelty, practicality, reliability, economy, maturity, commercial value and so on. For technical and research purely science fiction and the like may be irrelevant depth, but not as aerospace engineering and technology practice. Otherwise, Mars will become a dream fantasy, and even into settling crashed out of danger. Regardless of the moon or Mars, many technical difficulties, especially a human landing on Mars and return safely to Earth, technical difficulties mainly in the following aspects. (Transformation of Mars and the Moon and other planets and detect other livable technology more complex and difficult, at this stage it is difficult to achieve and therefore not discussed in detail in this study). In fact, Mars will be the safe return of a full set of technology, space science, aerospace crucial scientific research development, its significance is not confined to Mars simply a return to scientific value, great commercial value, can not be measure. 1. Powered rocket, the spacecraft overall structural design not be too complex large, otherwise, the safety factor to reduce the risk of failure accidents. Fusion rocket engine main problem to be solved is the high-temperature materials and fuel ignition chamber (reaction chamber temperatures of up to tens of millions of supreme billion degrees), fissile class rocket engine whose essence is the miniaturization of nuclear reactors, and placed on the rocket. Nuclear rocket engine fuel as an energy source, with liquid hydrogen, liquid helium, liquid ammonia working fluid. Nuclear rocket engine mounted in the thrust chamber of the reactor, cooling nozzle, the working fluid delivery and control systems and other components. This engine due to nuclear radiation protection, exhaust pollution, reactor control and efficient heat exchanger design and other issues unresolved. Electrothermal rocket engine utilizing heat energy (resistance heating or electric arc heating) working medium (hydrogen, amines, hydrazine ), vaporized; nozzle expansion accelerated after discharged from the spout to generate thrust. Static rocket engine working fluid (mercury, cesium, hydrogen, etc.) from the tank enter the ionization chamber is formed thrust ionized into a plasma jet. Electric rocket engines with a high specific impulse (700-2500 sec), extremely long life (can be repeated thousands of times a starter, a total of up to thousands of hours of work). But the thrust of less than 100N. This engine is only available for spacecraft attitude control, station-keeping and the like. One nuclear - power rocket design is as follows: Firstly, the reactor heats water to make it into steam, and then the high-speed steam ejected, push the rocket. Nuclear rocket using hydrogen as working substance may be a better solution, it is one of the most commonly used liquid hydrogen rocket fuel rocket carrying liquid hydrogen virtually no technical difficulties. Heating hydrogen nuclear reactor, as long as it eventually reaches or exceeds current jet velocity hydrogen rocket engine jet speed, the same weight of the rocket will be able to work longer, it can accelerate the Rockets faster. Here there are only two problems: First, the final weight includes the weight of the rocket in nuclear reactors, so it must be as light as possible. Ultra-small nuclear reactor has been able to achieve. Furthermore, if used in outer space, we can not consider the problem of radioactive residues, simply to just one proton hydrogen nuclei are less likely to produce induced radioactivity, thus shielding layer can be made thinner, injected hydrogen gas can flow directly through the reactor core, it is not easy to solve, and that is how to get back at high speed heated gas is ejected. Rocket engine with a nuclear fission reactor, based on the heating liquid hydrogen propellant, rather than igniting flammable propellant High-speed heavy rocket is a major cutting-edge technology. After all, space flight and aircraft carriers, submarines, nuclear reactors differ greatly from the one hand, the use of traditional fuels, on the one hand can be nuclear reactor technology. From the control, for security reasons, the use of nuclear power rocket technology, safe and reliable overriding indicators. Nuclear atomic energy in line with the norms and rules of outer space. For the immature fetal abdominal hatchery technology, and resolutely reject use. This is the most significant development of nuclear-powered rocket principle. Nuclear-powered spaceship for Use of nuclear power are three kinds: The first method: no water or air space such media can not be used propeller must use jet approach. Reactor nuclear fission or fusion to produce a lot of heat, we will propellant (such as liquid hydrogen) injection, the rapid expansion of the propellant will be heated and then discharged from the engine speed tail thrust. This method is most readily available. The second method: nuclear reactor will have a lot of fast-moving ions, these energetic particles moving very fast, so you can use a magnetic field to control their ejection direction. This principle ion rocket similar to the tail of the rocket ejected from the high-speed mobile ions, so that the recoil movement of a rocket. The advantage of this approach is to promote the unusually large ratio, without carrying any medium, continued strong. Ion engine, which is commonly referred to as "electric rocket", the principle is not complicated, the propellant is ionized particles, Plasma Engine Electromagnetic acceleration, high-speed spray. From the development trend, the US research scope covers almost all types of electric thrusters, but mainly to the development of ion engines, NASA in which to play the most active intake technology and preparedness plans. " The third method: the use of nuclear explosions. It is a bold and crazy way, no longer is the use of a controlled nuclear reaction, but to use nuclear explosions to drive the ship, this is not an engine, and it is called a nuclear pulse rocket. This spacecraft will carry a lot of low-yield atomic bombs out one behind, and then detonated, followed by a spacecraft propulsion installation disk, absorbing the blast pushing the spacecraft forward. This was in 1955 to Orion (Project Orion) name of the project, originally planned to bring two thousand atomic bombs, Orion later fetal nuclear thermal rocket. Its principle is mounted on a small rocket reactor, the reactor utilizing thermal energy generated by the propellant is heated to a high temperature, high pressure and high temperature of the propellant from the high-speed spray nozzle, a tremendous impetus. Common nuclear fission technologies, including nuclear pulse rocket engines, nuclear rockets, nuclear thermal rocket and nuclear stamping rockets to nuclear thermal rocket, for example, the size of its land-based nuclear power plant reactor structure than the much smaller, more uranium-235 purity requirements high, reaching more than 90%, at the request of the high specific impulse engine core temperature will reach about 3000K, require excellent high temperature properties of materials.  Research and test new IT technologies and new products and new technology and new materials, new equipment, things are difficult, design is the most important part, especially in the overall design, technical solutions, technical route, technical process, technical and economic particularly significant. The overall design is defective, technology there are loopholes in the program, will be a major technical route deviation, but also directly related to the success of research trials. so, any time, under any circumstances, a good grasp of the overall control of design, technical design, is essential. otherwise, a done deal, it is difficult save. aerospace technology research and product development is true. 3, high-performance nuclear rocket Nuclear rocket nuclear fission and fusion energy can rocket rocket two categories. Nuclear fission and fusion produce heat, radiation and shock waves and other large amounts of energy, but here they are contemplated for use as a thermal energy rocket. Uranium and other heavy elements, under certain conditions, will split their nuclei, called nuclear fission reaction. The atomic bomb is the result of nuclear fission reactions. Nuclear fission reaction to release energy, is a million times more chemical rocket propellant combustion energy. Therefore, nuclear fission energy is a high-performance rocket rockets. Since it requires much less propellant than chemical rockets can, so to its own weight is much lighter than chemical rockets energy. For the same quality of the rocket, the rocket payload of nuclear fission energy is much greater than the chemical energy of the rocket. Just nuclear fission energy rocket is still in the works.  Use of nuclear fission energy as the energy of the rocket, called the atomic rockets. It is to make hydrogen or other inert gas working fluid through the reactor, the hydrogen after the heating temperature quickly rose to 2000 ℃, and then into the nozzle, high-speed spray to produce thrust.  A vision plan is to use liquid hydrogen working fluid, in operation, the liquid hydrogen tank in the liquid hydrogen pump is withdrawn through the catheter and the engine cooling jacket and liquid hydrogen into hydrogen gas, hydrogen gas turbine-driven, locally expansion. Then by nuclear fission reactors, nuclear fission reactions absorb heat released, a sharp rise in temperature, and finally into the nozzle, the rapid expansion of high-speed spray. Calculations show that the amount of atomic payload rockets, rocket high chemical energy than 5-8 times. Hydrogen and other light elements, under certain conditions, their nuclei convergent synthesis of new heavy nuclei, and release a lot of energy, called nuclear fusion reaction, also called thermonuclear reaction.  Using energy generated by the fusion reaction for energy rocket, called fusion energy rocket or nuclear thermal rockets. But it is also not only take advantage of controlled nuclear fusion reaction to manufacture hydrogen bombs, rockets and controlled nuclear fusion reaction needs still studying it. Of course there are various research and development of rocket technology and technical solutions to try. It is envisaged that the rocket deuterium, an isotope of hydrogen with deuterium nuclear fusion reaction of helium nuclei, protons and neutrons, and release huge amounts of energy, just polymerized ionized helium to temperatures up to 100 million degrees the plasma, and then nozzle expansion, high-speed ejection, the exhaust speed of up to 15,000 km / sec, atomic energy is 1800 times the rocket, the rocket is the chemical energy of 3700 times. Nuclear rocket engine fuel as an energy source, with liquid hydrogen, liquid helium, liquid ammonia working fluid. Nuclear rocket engine mounted in the thrust chamber of the reactor, cooling nozzle, the working fluid delivery and control systems and other components. In a nuclear reactor, nuclear energy into heat to heat the working fluid, the working fluid is heated after expansion nozzle to accelerate to the speed of 6500 ~ 11,000 m / sec from the discharge orifice to produce thrust. Nuclear rocket engine specific impulse (250 to 1000 seconds) long life, but the technology is complex, apply only to long-term spacecraft. This engine due to nuclear radiation protection, exhaust pollution, reactor control and efficient heat exchanger design and other issues not resolved, is still in the midst of trials. Nuclear rocket technology is cutting-edge aerospace science technology, centralized many professional and technical sciences and aerospace, nuclear physics, nuclear chemistry, materials science, the long term future ___-- wide width. The United States, Russia and Europe, China, India, Japan, Britain, Brazil and other countries in this regard have studies, in particular the United States and Russia led the way, impressive. Of course, at this stage of nuclear rocket technology, technology development there are still many difficulties. Fully formed, still to be. But humanity marching to the universe, nuclear reactor applications is essential. Outer Space Treaty (International Convention on the Peaceful Uses of Outer Space) **** Use of Nuclear Power Sources in Outer Space Principle 15 General Assembly, Having considered the report of its thirty-fifth session of the Committee on the Peaceful Uses of Outer Space and the Commission of 16 nuclear It can be attached in principle on the use of nuclear power sources in outer space of the text of its report, 17 Recognize that nuclear power sources due to small size, long life and other characteristics, especially suitable for use even necessary For some missions in outer space, Recognizing also that the use of nuclear power sources in outer space should focus on the possible use of nuclear power sources Those uses, Recognizing also that the use of nuclear power sources should include or probabilistic risk analysis is complete security in outer space Full evaluation is based, in particular, the public should focus on reducing accidental exposure to harmful radiation or radioactive material risk risk, Recognizing the need to a set of principles containing goals and guidelines in this regard to ensure the safety of outer space makes With nuclear power sources, Affirming that this set principles apply exclusively on space objects for non-power generation, which is generally characteristic Mission systems and implementation of nuclear power sources in outer space on similar principles and used by, Recognizing this need to refer to a new set of principles for future nuclear power applications and internationally for radiological protection The new proposal will be revised By the following principles on the use of nuclear power sources in outer space. Principle 1. Applicability of international law Involving the use of nuclear power sources in outer space activities should be carried out in accordance with international law, especially the "UN Principles of the Charter "and" States in the Exploration and Use of Outer Space, including the Moon and Other Celestial Bodies Activities Treaty "3 . 2. The principle terms 1. For the purpose of these principles, "launching State" and "launching State ......" two words mean, in related Principles related to a time of nuclear power sources in space objects exercises jurisdiction and control of the country. 2. For the purpose of principle 9, wherein the definition of the term "launching State" as contained in that principle. 3. For the purposes of principle 3, the terms "foreseeable" and "all possible" two words are used to describe the actual hair The overall likelihood of students that it is considered for safety analysis is credible possibilities for a class of things Member or circumstances. "General concept of defense in depth" when the term applies to nuclear power sources in outer space refers to various settings Count form and space operations replace or supplement the operation of the system in order to prevent system failures or mitigate thereafter "Official Records of the General Assembly, Forty-seventh Session, Supplement No. 20" 16 (A / 47/20). 17 Ibid., Annex. 38 fruit. To achieve this purpose is not necessarily required for each individual member has redundant safety systems. Given space Use and special requirements of various space missions, impossible to any particular set of systems or features can be specified as Necessary to achieve this purpose. For the purpose of Principle 3 (d) of paragraph 2, "made critical" does not include Including such as zero-power testing which are fundamental to ensuring system safety required. Principle 3. Guidelines and criteria for safe use To minimize the risk of radioactive material in space and the number involved, nuclear power sources in outer space Use should be limited to non-nuclear power sources in space missions can not reasonably be performed 1. General goals for radiation protection and nuclear safety  (A) States launching space objects with nuclear power sources on board shall endeavor to protect individuals, populations and the biosphere From radiation hazards. The design and use of space objects with nuclear power sources on board shall ensure that risk with confidence Harm in the foreseeable operational or accidental circumstances, paragraph 1 (b) and (c) to define acceptable water level. Such design and use shall also ensure that radioactive material does not reliably significant contamination of outer space.  (B) the normal operation of nuclear power sources in space objects, including from paragraph 2 (b) as defined in foot High enough to return to the track, shall be subject to appropriate anti-radiation recommended by the International Commission on Radiological Protection of the public Protection goals. During such normal operation there shall be no significant radiation exposure;  (C) To limit exposure in accidents, the design and construction of nuclear power source systems shall take into account the international Relevant and generally accepted radiological protection guidelines. In addition to the probability of accidents with potentially serious radiological consequences is extremely low, the nuclear power source Design systems shall be safely irradiated limited limited geographical area, for the individual radiation dose should be Limited to no more than a year 1mSv primary dose limits. Allows the use of irradiation year for some years 5mSv deputy agent Quantity limit, but the average over a lifetime effective dose equivalent annual dose not exceed the principal limit 1mSv degree. Should make these conditions occur with potentially serious radiological consequences of the probability of the system design is very small. Criteria mentioned in this paragraph Future modifications should be applied as soon as possible;  (D) general concept of defense in depth should be based on the design, construction and operation of systems important for safety. root According to this concept, foreseeable safety-related failures or malfunctions must be capable of automatic action may be Or procedures to correct or offset. It should ensure that essential safety system reliability, inter alia, to make way for these systems Component redundancy, physical separation, functional isolation and adequate independence. It should also take other measures to increase the level of safety. 2. The nuclear reactor  (A) nuclear reactor can be used to: 39  (I) On interplanetary missions;  (Ii) the second high enough orbit paragraph (b) as defined;  (Iii) low-Earth orbit, with the proviso that after their mission is complete enough to be kept in a nuclear reactor High on the track;  (B) sufficiently high orbit the orbital lifetime is long enough to make the decay of fission products to approximately actinides Element active track. The sufficiently high orbit must be such that existing and future outer space missions of crisis Risk and danger of collision with other space objects to a minimum. In determining the height of the sufficiently high orbit when It should also take into account the destroyed reactor components before re-entering the Earth's atmosphere have to go through the required decay time between.  (C) only 235 nuclear reactors with highly enriched uranium fuel. The design shall take into account the fission and Activation of radioactive decay products.  (D) nuclear reactors have reached their operating orbit or interplanetary trajectory can not be made critical state state.  (E) nuclear reactor design and construction shall ensure that, before reaching the operating orbit during all possible events Can not become critical state, including rocket explosion, re-entry, impact on ground or water, submersion In water or water intruding into the core.  (F) a significant reduction in satellites with nuclear reactors to operate on a lifetime less than in the sufficiently high orbit orbit For the period (including during operation into the sufficiently high orbit) the possibility of failure, there should be a very Reliable operating system, in order to ensure an effective and controlled disposal of the reactor. 3. Radioisotope generators  (A) interplanetary missions and other spacecraft out of Earth's gravitational field tasks using radioactive isotopes Su generator. As they are stored after completion of their mission in high orbit, the Earth can also be used track. We are required to make the final treatment under any circumstances.  (B) Radioisotope generators shall be protected closed systems, design and construction of the system should Ensure that in the foreseeable conditions of the track to withstand the heat and aerodynamic forces of re-entry in the upper atmosphere, orbit Conditions including highly elliptical or hyperbolic orbits when relevant. Upon impact, the containment system and the occurrence of parity Physical morpheme shall ensure that no radioactive material is scattered into the environment so you can complete a recovery operation Clear all radioactive impact area. Principle 4. Safety Assessment 1. When launching State emission consistent with the principles defined in paragraphs 1, prior to the launch in applicable under the Designed, constructed or manufactured the nuclear power sources, or will operate the space object person, or from whose territory or facility Transmits the object will be to ensure a thorough and comprehensive safety assessment. This assessment shall cover All relevant stages of space mission and shall deal with all systems involved, including the means of launching, the space level Taiwan, nuclear power source and its equipment and the means of control and communication between ground and space. 2. This assessment shall respect the principle of 3 contained in the guidelines and criteria for safe use. 40 3. The principle of States in the Exploration and Use, including the Moon and Other Celestial Bodies Outer Space Activities Article Results of about 11, this safety assessment should be published prior to each transmit simultaneously to the extent feasible Note by the approximate intended time of launch, and shall notify the Secretary-General of the United Nations, how to be issued This safety assessment before the shot to get the results as soon as possible. Principle 5. Notification of re-entry 1. Any State launching a space object with nuclear power sources in space objects that failed to produce discharge When radioactive substances dangerous to return to the earth, it shall promptly notify the country concerned. Notice shall be in the following format:  (A) System parameters:  (I) Name of launching State, including which may be contacted in the event of an accident to Request Information or assistance to obtain the relevant authorities address;  (Ii) International title;  (Iii) Date and territory or location of launch;  (Iv) the information needed to make the best prediction of orbit lifetime, trajectory and impact region;  (V) General function of spacecraft;  (B) information on the radiological risk of nuclear power source:  (I) the type of power source: radioisotopes / reactor;  (Ii) the fuel could fall into the ground and may be affected by the physical state of contaminated and / or activated components, the number of The amount and general radiological characteristics. The term "fuel" refers to as a source of heat or power of nuclear material. This information shall also be sent to the Secretary-General of the United Nations. 2. Once you know the failure, the launching State shall provide information on the compliance with the above format. Information should as far as possible To be updated frequently, and in the dense layers of the Earth's atmosphere is expected to return to a time when close to the best increase Frequency of new data, so that the international community understand the situation and will have sufficient time to plan for any deemed necessary National contingency measures. 3. It should also be at the same frequency of the latest information available to the Secretary-General of the United Nations. Principle 6. consultation 5 According to the national principles provide information shall, as far as reasonably practicable, other countries Requirements to obtain further information or consultations promptly reply. Principle 7. Assistance to States 1. Upon receipt of expected with nuclear power sources on space objects and their components will return through the Earth's atmosphere After know that all countries possessing space monitoring and tracking facilities, in the spirit of international cooperation, as soon as possible to The Secretary-General of the United Nations and the countries they may have made space objects carrying nuclear power sources A fault related information, so that the States may be affected to assess the situation and take any It is considered to be the necessary precautions. 41 2. In carrying space objects with nuclear power sources back to the Earth's atmosphere after its components:  (A) launching State shall be requested by the affected countries to quickly provide the necessary assistance to eliminate actual And possible effects, including nuclear power sources to assist in identifying locations hit the Earth's surface, to detect the re substance Quality and recovery or cleanup activities.  (B) All countries with relevant technical capabilities other than the launching State, and with such technical capabilities International organizations shall, where possible, in accordance with the requirements of the affected countries to provide the necessary co help. When according to the above (a) and subparagraph (b) to provide assistance, should take into account the special needs of developing countries. Principle 8. Responsibility In accordance with the States in the Exploration and Use of Outer Space, including the Moon and Other Celestial Bodies activities, including the principles of Article About Article, States shall bear international responsibility for their use of nuclear power sources in outer space relates to the activities Whether such activities are carried on by governmental agencies or non-governmental entities, and shall bear international responsibility to ensure that this Such activities undertaken by the country in line with the principles of the Treaty and the recommendations contained therein. If it involves the use of nuclear power sources Activities in outer space by an international organization, should be done by the international organizations and States to participate in the organization Undertakes to comply with the principles of the Treaty and the recommendations contained in these responsibilities. Principle 9. Liability and Compensation 1. In accordance with the principle of States in the Exploration and Use, including the Moon and Other Celestial Bodies Outer Space Activities Article And the Convention on International Liability for Damage Caused by Space Objects covenant of Article 7 Provisions, which launches or on behalf of the State Each State launching a space object and each State from which territory or facility a space object is launched Kinds of space object or damage caused by components shall bear international liability. This fully applies to this Kind of space object carrying a nuclear power source case. Two or more States jointly launch a space object, Each launching State shall in accordance with the above Article of the Convention for any damages jointly and severally liable. 2. Such countries under the aforesaid Convention shall bear the damages shall be in accordance with international law and fair and reasonable The principles set out in order to provide for damages to make a claim on behalf of its natural or juridical persons, national or International organizations to restore to the state before the occurrence of the damage. 3. For the purposes of this principle, compensation should be made to include reimbursement of the duly substantiated expenses for search, recovery and clean Cost management work, including the cost of providing assistance to third parties. 10. The principle of dispute settlement Since the implementation of these principles will lead to any dispute in accordance with the provisions of the UN Charter, by negotiation or Other established procedures to resolve the peaceful settlement of disputes. Here quoted the important provisions of the United Nations concerning the use of outer space for peaceful nuclear research and international conventions, the main emphasis on the Peaceful Uses of provisions related constraints .2 the use of nuclear rockets in outer space nuclear studies, etc., can cause greater attention in nuclear power nuclear rocket ship nuclear research, manufacture, use and other aspects of the mandatory hard indicators. this scientists, engineering and technical experts are also important constraints and requirements. as IAEA supervision and management as very important. 2. radiation. Space radiation is one of the greatest threats to the safety of the astronauts, including X-rays, γ-rays, cosmic rays and high-speed solar particles. Better than aluminum protective effect of high polymer composite materials. 3. Air. Perhaps the oxygen needed to rely on oxidation-reduction reaction of hydrogen and ilmenite production of water, followed by water electrolysis to generate oxygen. Mars oxygen necessary for survival but also from the decomposition of water, electrolytically separating water molecules of oxygen and hydrogen, this oxygen equipment has been successfully used in the International Space Station. Oxygen is released into the air to sustain life, the hydrogen system into the water system. 4. The issue of food waste recycling. At present, the International Space Station on the use of dehumidifiers, sucked moisture in the air to be purified, and then changed back to drinkable water. The astronauts' urine and sweat recycling. 5. water. The spacecraft and the space station on purification system also makes urine and other liquids can be purified utilization. 6. microgravity. In microgravity or weightlessness long-term space travel, if protective measures shall not be treated, the astronauts will be muscle atrophy, bone softening health. 7. contact. 8. Insulation, 9 energy. Any space exploration are inseparable from the energy battery is a new super hybrid energy storage device, the asymmetric lead-acid batteries and supercapacitors in the same compound within the system - and the so-called inside, no additional separate electronic control unit, this is an optimal combination. The traditional lead-acid battery PbO2 monomer is a positive electrode plate and a negative electrode plate spongy Pb composition, not a super cell. : Silicon solar cells, multi-compound thin film solar cells, multi-layer polymer-modified electrode solar cells, nano-crystalline solar cells, batteries and super class. For example, the solar aircraft .10. To protect the health and life safety and security systems. Lysophosphatidic acid LPA is a growth factor-like lipid mediators, the researchers found that this substance can on apoptosis after radiation injury and animal cells was inhibited. Stable lysophosphatidic acid analogs having the hematopoietic system and gastrointestinal tract caused by acute radiation sickness protection, knockout experiments show that lysophosphatidic acid receptors is an important foundation for the protection of radiation injury. In addition to work under high pressure, the astronauts face a number of health threats, including motion sickness, bacterial infections, blindness space, as well as psychological problems, including toxic dust. In the weightless environment of space, the astronaut's body will be like in preadolescents, as the emergence of various changes. Plantar molt After the environment to adapt to zero gravity, the astronaut's body will be some strange changes. Weightlessness cause fluid flow around the main flow torso and head, causing the astronauts facial swelling and inflammation, such as nasal congestion. During long-term stay in space Bone and muscle loss Most people weightlessness caused by the impact may be known bone and muscle degeneration. In addition, the calcium bones become very fragile and prone to fracture, which is why some of the astronauts after landing need on a stretcher. Space Blindness Space Blindness refers astronaut decreased vision. Solar storms and radiation is one of the biggest challenges facing the long-term space flight. Since losing the protection of Earth's magnetic field, astronauts suffer far more than normal levels of radiation. The cumulative amount of radiation exposure in low earth orbit them exceeded by workers close to nuclear reactors, thereby increasing the risk of cancer. Prolonged space flight can cause a series of psychological problems, including depression or mood swings, vulnerability, anxiety and fear, as well as other sequelae. We are familiar with the biology of the Earth, the Earth biochemistry, biophysics, after all, the Earth is very different astrophysics, celestial chemistry, biophysics and astrophysics, biochemistry and other celestial bodies. Therefore, you must be familiar with and adapt to these differences and changes. Osteoporosis and its complications ranked first in the space of disease risk.          Long-term health risks associated with flying Topics     The degree of influence long-term biological effects of radiation in human flight can withstand the radiation and the maximum limit of accumulated radiation on physiology, pathology and genetics.     Physiological effects of weightlessness including: long-term bone loss and a return flight after the maximum extent and severity of the continued deterioration of other pathological problems induced by the; maximum flexibility and severity of possible long-term Flight Center in vascular function.     Long-term risk of disease due to the high risk of flight stress, microbial variation, decreased immune function, leading to infections     Radiation hazards and protection             1) radiation medicine, biology and pathway effects Features     Radiation protection for interplanetary flight, since the lack of protective effect of Earth's magnetic field, and by the irradiation time is longer, the possibility of increased radiation hazard.                 Analysis of space flight medical problems that may occur, loss of appetite topped the list, sleep disorders, fatigue and insomnia, in addition, space sickness, musculoskeletal system problems, eye problems, infections problems, skin problems and cardiovascular problems     ---------------------------------------------------------          Development of diagnostic techniques in orbit, the development of the volume of power consumption, features a wide range of diagnostic techniques, such as applied research of ultrasound diagnostic techniques in the abdominal thoracic trauma, bone, ligament damage, dental / sinus infections and other complications and integrated;      Actively explore in orbit disposal of medical technology, weightlessness surgical methods, development of special surgical instruments, the role of narcotic drugs and the like. ——————————————————————————————- However, space technology itself is integrated with the use of the most advanced technology, its challenging technical reserves and periodic demanding With the continuous development of science and technology, space agencies plan a manned landing on the moon and Mars, space exploration emergency medicine current concern.   Space sickness In the weightless environment of space, in the weightless environment of space, surgery may be extremely difficult and risky.   Robot surgeons Space disease in three days after entering the space started to ease, although individual astronauts might subsequently relapse. January 2015 NASA declared working on a fast, anti-nausea and nasal sprays. In addition, due to the zero-gravity environment, and anti-nausea drugs can only be administered by injection or transdermal patches manner.           Manned spaceflight in the 21st century is the era of interplanetary flight, aerospace medicine is closely watched era is the era of China's manned space flourish. Only the central issue, and grasp the opportunity to open up a new world of human survival and development. Various emergency contingency measures in special circumstances. Invisible accident risk prevention. Enhancing drugs and other screening methods immunity aerospace medicine and tissue engineering a microgravity environment. Drug mixture of APS, ginseng polysaccharides, Ganoderma lucidum polysaccharides, polysaccharides and Lentinan, from other compounds. Drug development space syndrome drug, chemical structure modification will be an important part.  These issues are very sensitive, cutting-edge technology is a major difficulty landing on Mars. Countries in the world, especially the world's major space powers in the country strategies and technical research, the results of all kinds continue to emerge. United States, Russia, China, Europe, India, Japan and other countries is different. United States, Russia extraordinary strength. Many patented technology and health, and most belong to the top-secret technology. Especially in aerospace engineering and technological achievements is different from the general scientific literature, practical, commercial, industrial great, especially the performance of patents, know-how, technical drawings, engineering design and other aspects. Present Mars and return safely to Earth, the first manned, significance, everything is hard in the beginning, especially the first person to land on Mars This Mars for Human Sciences Research Mars, the moon, the earth, the solar system and the universe, life and other significant. Its far greater than the value of direct investments and business interests. In addition, it is the development of new materials, suitable for deep space operations universe, life, and other detection, wider field. Many aerospace materials, continuous research and development of materials are key areas of aerospace development, including material rocket, the spacecraft materials, the suit materials, radiation materials, materials and equipment, instruments, materials and so on biochemistry. Temperature metal-based compound with a metal matrix composite body with a more primordial higher temperature strength, creep resistance, impact resistance, thermal fatigue and other excellent high temperature performance. In B, C, SiC fiber reinforced Ti3Al, TiAl, Ni3Al intermetallic matrix composites, etc. W Fiber Reinforced with nickel-based, iron-based alloys as well as SiC, TiB2, Si3N4 and BN particle reinforced metal matrix composites High temperature service conditions require the development of ceramic and carbon-based composite materials, etc., not in this eleven Cheung said. Fuel storage In order to survive in space, people need many things: food, oxygen, shelter, and, perhaps most importantly, fuel. The initial quality Mars mission somewhere around 80 percent of the space launch humans will be propellant. The fuel amount of storage space is very difficult. This difference in low Earth orbit cause liquid hydrogen and liquid oxygen - rocket fuel - vaporization. Hydrogen is particularly likely to leak out, resulting in a loss of about 4% per month. When you want to get people to Mars speed to minimize exposure to weightlessness and space radiation hazards Mars Landings on the Martian surface, they realized that they reached the limit. The rapid expansion of the thin Martian atmosphere can not be very large parachute, such as those that will need to be large enough to slow down, carry human spacecraft. Therefore, the parachute strong mass ratio, high temperature resistance, Bing shot performance and other aspects of textile materials used have special requirements, in order to make a parachute can be used in rockets, missiles, Yu arrows spacecraft and other spacecraft recovery, it is necessary to improve the canopy heat resistance, a high melting point polymeric fiber fabric used, the metal fabric, ceramic fiber fabrics, and other devices. Super rigid parachute to help slow the landing vehicle. Spacecraft entered the Martian atmosphere at 24,000 km / h. Even after slowing parachute or inflatable, it will be very Once we have the protection of the Earth magnetic field, the solar radiation will accumulate in the body, a huge explosion threw the spacecraft may potentially lethal doses of radiation astronauts. In addition to radiation, the biggest challenge is manned trip to Mars microgravity, as previously described. The moon is sterile. Mars is another case entirely. With dust treatment measures. Arid Martian environment to create a super-tiny dust particles flying around the Earth for billions of years. Apollo moon dust encountered. Ultra-sharp and abrasive lunar dust was named something that can clog the basic functions of mechanical damage. High chloride salt, which can cause thyroid problems in people. *** Mars geological structure and geological structure of the moon, water on Mars geology, geology of the Moon is very important, because he, like the Earth's geology is related to many important issues. Water, the first element of life, air, temperature, and complex geological formations are geological structure. Cosmic geology research methods, mainly through a variety of detection equipment equipped with a space probe, celestial observations of atmospheric composition, composition and distribution of temperature, pressure, wind speed, vertical structure, composition of the solar wind, the water, the surface topography and Zoning, topsoil the composition and characteristics of the component surface of the rock, type and distribution, stratigraphic sequence, structural system and the internal shell structure.     Mars internal situation only rely on its surface condition of large amounts of data and related information inferred. It is generally believed that the core radius of 1700 km of high-density material composition; outsourcing a layer of lava, it is denser than the Earth's mantle some; outermost layer is a thin crust. Compared to other terrestrial planets, the lower the density of Mars, which indicates that the Martian core of iron (magnesium and iron sulfide) with may contain more sulfur. Like Mercury and the Moon, Mars and lack active plate movement; there is no indication that the crust of Mars occurred can cause translational events like the Earth like so many of folded mountains. Since there is no lateral movement in the earth's crust under the giant hot zone relative to the ground in a stationary state. Slight stress coupled with the ground, resulting in Tharis bumps and huge volcano. For the geological structure of Mars is very important, which is why repeated explorations and studies of Martian geological reasons. Earth's surface Each detector component landing site soil analysis: Element weight percent Viking 1 Oxygen 40-45 Si 18-25 Iron 12-15 K 8 Calcium 3-5 Magnesium 3-6 S 2-5 Aluminum 2-5 Cesium 0.1-0.5 Core Mars is about half the radius of the core radius, in addition to the primary iron further comprises 15 to 17% of the sulfur content of lighter elements is also twice the Earth, so the low melting point, so that the core portion of a liquid, such as outside the Earth nuclear. Mantle Nuclear outer coating silicate mantle. Crust The outermost layer of the crust. Crustal thickness obtained, the original thickness of the low north 40 km south plateau 70 kilometers thick, an average of 50 kilometers, at least 80 km Tharsis plateau and the Antarctic Plateau, and in the impact basin is thin, as only about 10 kilometers Greece plains. Canyon of Mars there are two categories: outflow channels (outflow channel) and tree valley (valley network). The former is very large, it can be 100 km wide, over 2000 km long, streamlined, mainly in the younger Northern Hemisphere, such as the plain around Tyre Chris Canyon and Canyon jam. In addition, the volcanic activity sometimes lava formation lava channels (lava channel); crustal stress generated by fissures, faults, forming numerous parallel extending grooves (fossa), such as around the huge Tharsis volcanic plateau radially distributed numerous grooves, which can again lead to volcanic activity.   Presumably, Mars has an iron as the main component of the nucleus, and contains sulfur, magnesium and other light elements, the nuclear share of Mars, the Earth should be relatively small. The outer core is covered with a thick layer of magnesium-rich silicate mantle, the surface of rocky crust. The density of Earth-like planets Mars is the lowest, only 3.93g / cc. Hierarchy The crust Lunar core The average density of the Moon is 3.3464 g / cc, the solar system satellites second highest (after Aiou). However, there are few clues mean lunar core is small, only about 350 km radius or less [2]. The core of the moon is only about 20% the size of the moon, the moon's interior has a solid, iron-rich core diameter of about 240 kilometers (150 miles); in addition there is a liquid core, mainly composed of iron outer core, about 330 km in diameter (205 miles), and for the first time compared with the core of the Earth, considered as the earth's outer core, like sulfur and oxygen may have lighter elements [4]. Chemical elements on the lunar surface constituted in accordance with its abundance as follows: oxygen (O), silicon (Si), iron (Fe), magnesium (Mg), calcium (Ca), aluminum (Al), manganese (Mn), titanium ( Ti). The most abundant is oxygen, silicon and iron. The oxygen content is estimated to be 42% (by weight). Carbon (C) and nitrogen (N) only traces seem to exist only in trace amounts deposited in the solar wind brings. Lunar Prospector from the measured neutron spectra, the hydrogen (H) mainly in the lunar poles [2].   Element content (%)    Oxygen 42%    Silicon 21%    Iron 13%    Calcium 8%    Aluminum 7%    Magnesium 6%   Other 3% Lunar surface relative content of each element (% by weight) Moon geological history is an important event in recent global magma ocean crystallization. The specific depth is not clear, but some studies have shown that at least a depth of about 500 kilometers or more. Lunar landscape Lunar landscape can be described as impact craters and ejecta, some volcanoes, hills, lava-filled depressions. Regolith TABLE bear the asteroid and comets billions of years of bombardment. Over time, the impact of these processes have already broken into fine-grained surface rock debris, called regolith. Young mare area, regolith thickness of about 2 meters, while the oldest dated land, regolith thickness of up to 20 meters. Through the analysis of lunar soil components, in particular the isotopic composition changes can determine the period of solar activity. Solar wind gases possible future lunar base is useful because oxygen, hydrogen (water), carbon and nitrogen is not only essential to life, but also may be useful for fuel production. Lunar soil constituents may also be as a future source of energy. Here, repeatedly stressed that the geological structure and geological structure of celestial bodies, the Earth, Moon, Mars, or that this human existence and development of biological life forms is very important, especially in a series of data Martian geological structure geological structure is directly related to human landing Mars and the successful transformation of Mars or not. for example, water, liquid water, water, oxygen, synthesis, must not be taken lightly. ____________________________________________________________---- Mars landing 10 Technology    Aerospace Science and space science and technology major innovation of the most critical of sophisticated technology R & D project [ "1" rocket propulsion technology ion fusion nuclear pulse propulsion rocket powered high-speed heavy rocket technology, space nuclear reactors spacecraft] brought big problems reflected in the nuclear reaction, nuclear radiation on spacecraft launch, control, brakes and other impact. In particular, for the future of nuclear power spacecraft, the need to solve the nuclear reactor design, manufacture, control, cooling, radiation shielding, exhaust pollution, high thermoelectric conversion efficiency and a series of technical problems. In particular, nuclear reactors produce radiation on astronauts' health will pose a great threat, which requires the spacecraft to be nuclear radiation shielding to ensure astronaut and ship the goods from radiation and heat from the reactor influence, but this will greatly increase the weight of the detector. Space nuclear process applications, nuclear reaction decay is not a problem, but in a vacuum, ultra-low temperature environment, the nuclear reaction materials, energy transport materials have very high demands. Space facing the reality of a nuclear reactor cooling cooling problems. To prevent problems with the reactor, "Washington" aircraft carrier to take four heavy protective measures for the radiation enclosed in the warship. These four measures are: the fuel itself, fuel storage pressure vessel, reactor shell and the hull. US Navy fuel all metal fuel, designed to take the impact resistance of the war, does not release fission product can withstand more than 50 times the gravity of the impact load; product of nuclear fission reactor fuel will never enter loop cooling water. The third layer of protection is specially designed and manufactured the reactor shell. The fourth layer is a very strong anti-impact combat ship, the reactor is arranged in the center of the ship, very safe. Engage in a reactor can only be loaded up to the aircraft, so as to drive the motor, and then drive the propeller. That is the core advantage of the heat generated by the heated gas flow, high temperature high pressure gas discharge backward, thereby generating thrust. . After installation AMPS1000 type nuclear power plant, a nuclear fuel assembly: He is a core member of the nuclear fuel chain reaction. Usually made into uranium dioxide, of which only a few percent uranium-235, and most of it is not directly involved in the nuclear fission of uranium 238. The uranium dioxide sintered into cylindrical pieces, into a stainless steel or a zirconium alloy do metal tubes called fuel rods or the original, then the number of fuel rods loaded metal cylinder in an orderly composition of the fuel assembly, and finally put a lot of vertical distribution of fuel assemblies in the reactor. Nuclear reactor pressure vessel is a housing for containing nuclear fuel and reactor internals, for producing high-quality high-strength steel is made to withstand the pressure of dozens MPa. Import and export of the coolant in the pressure vessel. The top of the pressure vessel closure, and can be used to accommodate the fixed control rod drive mechanism, pressure vessel head has a semi-circular, flat-topped. Roof bolt: used to connect the locking pressure vessel head, so that the cylinder to form a completely sealed container. Neutron Source: Plug in nuclear reactors can provide sufficient neutron, nuclear fuel ignition, to start to enhance the role of nuclear reactors and nuclear power. Neutron source generally composed of radium, polonium, beryllium, antimony production. Neutron source and neutron fission reactors are fast neutron, can not cause fission of uranium 235, in order to slow down, we need to moderator ---- full of pure water in a nuclear reactor. Aircraft carriers, submarines use nuclear reactor control has proven more successful. Rod: has a strong ability to absorb neutrons, driven by the control rod drive mechanism, can move up and down in a nuclear reactor control rods within the nuclear fuel used to start, shut down the nuclear reactor, and maintain, regulate reactor power. Hafnium control rods in general, silver, indium, cadmium and other metals production. Control rod drive mechanism: He is the executive body of nuclear reactors operating system and security protection systems, in strict accordance with requirements of the system or its operator control rod drives do move up and down in a nuclear reactor, nuclear reactor for power control. In a crisis situation, you also can quickly control rods fully inserted into the reactor in order to achieve the purpose of the emergency shutdown Upper and lower support plate: used to secure the fuel assembly. High temperature and pressure inside the reactor is filled with pure water (so called pressurized water reactors), on the one hand he was passing through a nuclear reactor core, cooling the nuclear fuel, to act as a coolant, on the other hand it accumulates in the pressure vessel in play moderated neutrons role, acting as moderator. Water quality monitoring sampling system: Adding chemical system: under normal circumstances, for adding hydrazine, hydrogen, pH control agents to the primary coolant system, the main purpose is to remove and reduce coolant oxygen, high oxygen water suppression equipment wall corrosion (usually at a high temperature oxygen with hydrogen, especially at low temperatures during startup of a nuclear reactor with added hydrazine oxygen); when the nuclear reactor control rods stuck for some reason can not shutdown time by the the system can inject the nuclear reactor neutron absorber (such as boric acid solution), emergency shutdown, in order to ensure the safety of nuclear submarines. Water system: a loop inside the water will be reduced at work, such as water sampling and analysis, equipment leaks, because the shutdown process cooling water and reduction of thermal expansion and contraction. Equipment cooling water system: Pressure safety systems: pressure reactor primary coolant system may change rapidly for some reason, the need for effective control. And in severe burn nuclear fuel rods, resulting in a core melt accident, it is necessary to promptly increase the pressure. Turn the regulator measures the electric, heating and cooling water. If necessary, also temporary startup booster pump. Residual Heat Removal System: reactor scram may be due to an accident, such as when the primary coolant system of the steam generator heat exchanger tube is damaged, it must be urgently closed reactors. Safety Injection System: The main components of this system is the high-pressure injection pump. Radioactive waste treatment systems: Decontamination Systems: for the removal of radioactive deposits equipment, valves, pipes and accessories, and other surfaces. Europe, the United States and Russia and other countries related to aircraft carriers, submarines, icebreakers, nuclear-powered research aircraft, there are lots of achievements use of nuclear energy, it is worth analysis. However, nuclear reactor technology, rocket ships and the former are very different, therefore, requires special attention and innovative research. Must adopt a new new design techniques, otherwise, fall into the stereotype, it will avail, nothing even cause harm Aerospace.   [ "2" spacecraft structure]    [ "3"] radiation technology is the use of deep-sea sedimentation fabric fabrics deepwater technology development precipitated silver metal fibers or fiber lint and other materials and micronaire value between 4.1 to 4.3 fibers made from blends. For radiation protection field, it greatly enhances the effects of radiation and service life of clothing. Radiation resistant fiber) radiation resistant fiber - fiber polyimide polyimide fibers 60 years the United States has successfully developed polyimide fibers, it has highlighted the high temperature, radiation-resistant, fire-retardant properties.      [ "4" cosmic radiation resistant clothing design multifunctional anti-aging, wear underwear] ① comfort layer: astronauts can not wash clothes in a long flight, a lot of sebum, perspiration, etc. will contaminate underwear, so use soft, absorbent and breathable cotton knitwear making. ② warm layer: at ambient temperature range is not the case, warm layer to maintain a comfortable temperature environment. Choose warm and good thermal resistance large, soft, lightweight material, such as synthetic fibers, flakes, wool and silk and so on. ③ ventilation and cooling clothes clothes Spacesuit In astronaut body heat is too high, water-cooled ventilation clothing and clothing to a different way of heat. If the body heat production more than 350 kcal / h (ventilated clothes can not meet the cooling requirements, then that is cooled by a water-cooled suit. Ventilating clothing and water-cooled multi-use compression clothing, durable, flexible plastic tubing, such as polyvinyl chloride pipe or nylon film. ④ airtight limiting layer: ⑤ insulation: astronaut during extravehicular activities, from hot or cold insulation protection. It multilayer aluminized polyester film or a polyimide film and sandwiched between layers of nonwoven fabric to be made. ⑥ protective cover layer: the outermost layer of the suit is to require fire, heat and anti-space radiation on various factors (micrometeorites, cosmic rays, etc.) on the human body. Most of this layer with aluminized fabric. New space suits using a special radiation shielding material, double design. And also supporting spacesuit helmet, gloves, boots and so on.       [ "5" space - Aerospace biomedical technology, space, special use of rescue medication Space mental health care systems in space without damage restful sleep positions - drugs, simple space emergency medical system ]       [ "6" landing control technology, alternate control technology, high-performance multi-purpose landing deceleration device (parachute)]       [ "7" Mars truck, unitary Mars spacecraft solar energy battery super multi-legged (rounds) intelligent robot] multifunction remote sensing instruments on Mars, Mars and more intelligent giant telescope         [8 << >> Mars warehouse activities, automatic Mars lander - Automatic start off cabin ]         [ "9" Mars - spacecraft docking control system, return to the system design]          Space flight secondary emergency life - support system          Spacecraft automatic, manual, semi-automatic operation control, remote control switch system                  Automatic return spacecraft systems, backup design, the spacecraft automatic control operating system modular blocks of]       [10 lunar tracking control system            Martian dust storms, pollution prevention, anti-corrosion and other special conditions thereof             Electric light aircraft, Mars lander, Mars, living spaces, living spaces Mars, Mars entry capsule, compatible utilization technology, plant cultivation techniques, nutrition space - space soil]   Aerospace technology, space technology a lot, a lot of cutting-edge technology. Human landing on Mars technology bear the brunt. The main merge the human landing on Mars 10 cutting-edge technology, in fact, these 10 cutting-edge technology, covering a wide range, focused, and is the key to key technologies. They actually shows overall trends and technology Aerospace Science and Technology space technology. Human triumph Mars and safe return of 10 cutting-edge technology is bound to innovation. Moreover, in order to explore the human Venus, Jupiter satellites and the solar system, the Milky Way and other future development of science and laid the foundation guarantee. But also for the transformation of human to Mars, the Moon and other planets livable provides strong technical support. Aerospace Science and Technology which is a major support system.              Preparation of oxygen, water, synthesis, temperature, radiation, critical force confrontation. Regardless of the moon or Mars, survive three elements bear the brunt. Chemical formula: H₂O Formula: H-O-H (OH bond between two angle 104.5 °). Molecular Weight: 18.016 Chemical Experiment: water electrolysis. Formula: 2H₂O = energized = 2H₂ ↑ + O₂ ↑ (decomposition) Molecules: a hydrogen atom, an oxygen atom. Ionization of water: the presence of pure water ionization equilibrium following: H₂O == == H⁺ + OH⁻ reversible or irreversible H₂O + H₂O = = H₃O⁺ + OH⁻. NOTE: "H₃O⁺" hydronium ions, for simplicity, often abbreviated as H⁺, more accurate to say the H9O4⁺, the amount of hydrogen ion concentration in pure water material is 10⁻⁷mol / L. Electrolysis of water: Water at DC, decomposition to produce hydrogen and oxygen, this method is industrially prepared pure hydrogen and oxygen 2H₂O = 2H₂ ↑ + O₂ ↑. . Hydration Reaction: Water with an alkaline active metal oxides, as well as some of the most acidic oxide hydration reaction of unsaturated hydrocarbons. Na₂O + H₂O = 2NaOH CaO + H₂O = Ca (OH) ₂ SO₃ + H₂O = H₂SO₄ P₂O₅ + 3H₂O = 2H₃PO₄ molecular structure CH₂ = CH₂ + H₂O ← → C₂H₅OH 6. The diameter of the order of magnitude of 10 water molecules negative power of ten, the water is generally believed that a diameter of 2 to 3 this organization. water 7. Water ionization: In the water, almost no water molecules ionized to generate ions. H₂O ← → H⁺ + OH⁻ Heating potassium chlorate or potassium permanganate preparation of oxygen Pressurized at low temperatures, the air into a liquid, and then evaporated, since the boiling point of liquid nitrogen is -196 deg.] C, lower than the boiling point of liquid oxygen (-183 ℃), so the liquid nitrogen evaporated from the first air, remaining the main liquid oxygen. Of course, the development of research in space there is a great difference, even more special preparation harsh environments on Earth and synthetic water and oxygen, over the need for more technological breakthroughs. The main component of air oxygen and nitrogen. The use of oxygen and nitrogen with different boiling points, said air separation production of oxygen from the air. First, the pre-cooled air, purification (removal of a small amount of moisture in the air, carbon dioxide, acetylene, hydrocarbons and other gases and dust and other impurities), is then compressed and cooled to become liquid air. Then, the oxygen and nitrogen boiling point difference in the liquid air distillation column repeatedly evaporation and condensation, oxygen and nitrogen separated to give pure oxygen (99.6% purity) and nitrogen (up to 99.9% purity). If you add some additional devices, also. Electrolysis does not apply to a lot of oxygen. Further hydrogen while producing if not properly collected, gathered up in the air, such as mixing with oxygen, prone to extremely violent explosion. Water is the source of life, there is a fuel cell on board the spacecraft, which use hydrogen and oxygen as fuel to generate electricity. Hydrogen and oxygen were originally stored in the hydrogen tank and oxygen tank. In use, the cylinder valve open, allowing two gases catalytic combustion to produce heat and electricity, but also produce a by-product - water. These are all very familiar with the technology. ************************************************** ************************************************** *************************************************    Mars said the focus of R & D focused on several aspects. Terraforming of Mars, Mars broader transformation of a larger, more telling is not in this. Too complex, cost more large, the risk is greater. From single from Earth to Mars, and safe return to Earth from Mars. These items and technologies directly related to the success and security of Mars, very important and difficult. Therefore, innovative design, manufacturing innovation and R & D testing has become a key to success. Core technology, key technology determines the human landing on Mars successes and failures, we must not be the slightest careless, and ultimately lead to disaster. Core technology, cutting-edge technology, aerospace engineering is not merely technical, actually contains a lot of basic research and applied research. R & D testing, reliability, security, maturity, advanced, economy, practicality, versatility is the key. Reliable technology, mature and practical, rather than paper like a simple concept like conjecture hypothesis and the like, but also remain at these levels, is clearly very successful technology. In theory, the unmanned spacecraft and manned spacecraft landed on Mars, landing on Mars is not absolutely trenches, both impassable; in fact, the principle - theory basically no different. The difference is the absolute reliability of manned flight security tighter, more stringent norms rigorous, research and development need more accurate and reliable test to ensure the safety of aerospace and from security personnel to prevent or eliminate any malfunction endanger astronauts life, especially in accident accidents and so on. Therefore, the overall design and security design, design and other aspects of emergency aid increased the number of important design and structure. Unmanned probe, Mars unmanned vehicles and manned landing on Mars after all, is not the same, the safety factor, reliability, preventing the risk of accidents is indeed the focus of research and development. Of course, space mission, demanding high risk is inevitable, but it must not lead to relaxation of attention to this study. Otherwise, even to Mars, casualties, can not be said to be successful. This is the core technology of the point. Technical design from the drawing to the overall design, the design division, from the manufacturing process, from the millions of parts to the whole assembly, quite complex. Special test detection and identification, a lot of work needs to be done and procedures. In short, technology to rigorous fine, sure, that makes a successful landing and safe return of the key, of course, Mars and return victory, it is not insurmountable days off, existing experience and technical conditions of human wisdom has begun to take shape, non special unexpected happens, Mars is still hopeful, happy to see, of course, we have a high degree of vigilance the occurrence of various risks of major accidents.  Space flight is a high-risk technology, the number of humans in manned space activities of dozens of people killed. Outside major accident, small accidents have also occurred. January 27, 1967: The United States, "Apollo 1" spacecraft launch failure when the simulation in Florida Cape Canaveral Kennedy Space Center, Astronaut Gus Grissom, Edward White and Roger Charles Philippines killed. April 24, 1967: Soviet cosmonaut Vladimir Komarov driving "Union" spacecraft at the time of return to the ground due to the reduced pressure failed to open the umbrella, causing the spacecraft crashed astronauts were killed. June 29, 1971: 24 days to complete the test track in space, Soviet cosmonaut Georgy Komarov, Vladimir Volkov and Viktor Pasha Aliyev return to the ground, landing in a predetermined distance there are errors due to reduced operating time and killed 30 minutes. January 28, 1986: The United States, "Challenger" space shuttle launch 73 seconds after the explosion, killing all seven astronauts. February 1, 2003: "Columbia" space shuttle in 16 minutes before scheduled landing time control center lost contact with the ground, and then disintegrated over central Texas, seven astronauts were no survivors.  United States launching a Grissom Colonel MR4 Mercury spacecraft, the 2nd suborbital flight, which lasted 15 minutes and 37 seconds. On return capsule splashed down in the Atlantic sea. Due to a short circuit, the cockpit door suddenly opened, when the astronauts to open the emergency exit, water has entered the cabin. After the astronauts forced out of the door, because the oxygen inlet valve is not closed on the space suit and water, so that the astronauts sinking into the sea, drink a lot of water. Five minutes later, he was only an emergency rescue helicopter to the ship. Soviet launching a Colonel Titov Vostok 2 spacecraft, flying into space one day, and travel 700,000 kilometers. Flight to the first five laps, Titov space sickness occurred.    US ready to launch Gemini 6 spacecraft, launch ignition 1.2 seconds, the rocket program fails to take off. Urgency of the situation, the spacecraft Neixi La lieutenant colonel and captain Stewart Stanford Jizhongshengzhi emergency manual shut off the engine and take off the other measures in order to keep the rocket and the spacecraft to avoid a disaster accident.  US Apollo spacecraft on the launch pad 4A conduct ground tests the landing-craft. Suddenly, full of pure oxygen cabin caught fire and exploded, three astronauts burned to death immediately. Cause of the accident is a short circuit inside the vehicle with wire spark, igniting the cabin air in the normal non-flammable plastics. Since the cabin filled with pure oxygen, thus burning fiercely, with design flaws, in a short time from the cabin extravehicular are unable to quickly open the door. And other rescue workers opened the door, three astronauts had been burned alive.  The Soviet Union is willing to launch the third generation of spacecraft Soyuz 1 with a Soyuz carrier rocket. April 24 spacecraft to return, because of the attitude control system failure, the first 18 laps, the astronauts Komarov Colonel manual control of the spacecraft attitude, then start braking rockets, only to return the spacecraft to enter orbit. After entering the atmosphere, nine kilometers away from the ground when the height of the main parachute does not open, reserve parachute also failed. Airship to more than 100 meters per second high speed, crashed near the Ural Oren Polk. Komarov died. Historical experience worthy of attention. 1970 April 11 the United States launching a Lovell, Hayes and Swaziland Stuttgart Apollo 13 spacecraft third lunar landing. Flight 56 ​​hours later, the spacecraft 330,000 kilometers from Earth, almost close to the moon, because the two large buttons thermostat switch failure, so that the combustion wave service module oxygen storage tank explosion, many cabin equipment damaged, oxygen and water are also lost more than half, the astronauts Lovell, Hayes and Swaziland Stuttgart faces buried disaster into space. But their courage, according to ground the scientists to accurately calculate the orbit and the ground commander's command, manually operated spacecraft, lunar module using oxygen and power, on April 17 successfully returned to Earth, creating aerospace history survived miracle. Apollo 13 escape, 1970.   Above aerospace major incidents, we should take this commandment. Drawn from a number of aerospace accident lessons, constantly improve and perfect the preventive measures and technology, which greatly reduce the occurrence of accidents, ensure the safety of aerospace flight. So, Mars is the top priority of the safety design, ensure the safe return of the astronauts and the successful landing.           Currently, the only type of rocket United States has spectral range, and the technology is a world leader. Its fleet of Delta launch vehicle models include -2, Delta -4, -5 Atlas, etc., can meet all kinds of large, medium and small payloads and launch rapid mobility needs. Development of near-Earth orbit carrying capacity of 105 tons of Block1A rocket, the third phase is to develop near-Earth orbit carrying capacity of 130 tons of Block2 rocket. Wherein, SLS basic rocket first flight is expected in 2018, the final type first flew in 2021. Russian carrier rocket Proton nuclear spaceship Currently, the Russian fleet of launch vehicles and improved models including Proton M, Soyuz FG / 2, Molniya M, Zenit series, Cosmos, etc., and by the improvement of the missile from the rumble number Dnepr No. , flight number. Its preliminary design of the program consists of five models, tied two to six boosters, near-Earth orbit carrying capacity from 16.6 tons to 130 tons. European Ariane 5 rocket In addition, the ESA in 2013 proposed Ariane rocket -6 designs, one, two rockets are powered by four nearly identical boosters, and the third level is using the SAFRAN Group is for the development of the rocket Ariane -5ME Vinci engine. Arian -6 can be no more than 6.5 tons of payload into geostationary transfer orbit, the follow-up program will be further improved and optimized. Epps Dragon Japan solid rocket    Japan, as one of Asia's space technology development earlier, through decades of development, the rockets have formed, including K, L, M, J, N, H and other six series of 12 models, these rocket in, H-2A and H-2B assumed the task of launching most of Japan's current military and civilian satellites and probes. Large fleet of H2B rocket carrying capacity in Japan is currently the largest, most technologically advanced rocket, Earth Near-Earth orbit carrying capacity of up to 16.5 tons. Rocket core primary and two children are using liquid hydrogen / liquid oxygen propellants which liquid hydrogen / liquid oxygen engine performance in the world leading level. India's GSLV rocket After decades of unremitting efforts, the overall level of India's aerospace technology developed rapidly, and its launch vehicle on the road of independent development has made great success, developed to meet the needs of the domestic launch of SLV-3 series, ASLV series, PSLV series and GSLV rockets. Wherein, PSLV series, GSLV series is currently India's main launch vehicle. Heavy launch vehicle are valued and developed again. Quick launch vehicle will be actively developed. Mars surface area equivalent to 28.4% of the Earth's surface area, slightly smaller than the Earth's land area (29.2% of the Earth surface area). Mars is only half the radius of the Earth, so the smaller, Mars has atmosphere, but very thin, equivalent to only 0.7 per cent of the Earth's atmosphere, so that part of Mars can only withstand solar radiation and cosmic rays. However, spacecraft, we can take advantage of the atmosphere of Mars atmospheric braking (Aerobraking). Most plants and animals can not survive in extreme environments on Mars, only some microorganisms and lichens can do it. Mars surface gravity (Surface gravity) only 38% of Earth's gravity The average temperature of Mars in between 186 and 268 K (minus 87 ° C and minus 5 ° C), compared to the Earth, to much colder Mars is farther from the sun, only about half of the Earth's atmosphere which received the received solar energy (solar constant). However, Mars is not a strong atmosphere and magnetosphere blocking solar radiation. Currently atmospheric pressure on Mars is only about 7.5 mbar, well below the limit of 61.8 mbar Armstrong, enough for humans Among the Martian atmosphere is 95% carbon dioxide, 3% nitrogen, 1.6% argon and other trace gases, including a total of less than 0.4% oxygen. Martian air, carbon dioxide partial pressure 7.1 mbar, compared to the earth is .31 mbar. Human carbon monoxide poisoning start at about 1 mbar. Mars did not complete a magnetic field. At the same time, there is no strong Mars atmosphere. Therefore, Mars will receive a large amount of ionizing radiation. During the flight the astronauts need to be protected, because the ionizing radiation and the solar wind will damage human DNA, increase the risk of cancer. [ Lighter Martian gravity is 0.38 times that of Earth's gravity, but the atmosphere is very thin, only 1% of the Earth's atmosphere. Only the pusher landing craft landed on Mars sad moon landing. Thin Martian atmosphere is difficult to carry out air brake, slowing the rate of decline. Manned landing craft must be designed and unmanned landing craft design different. ] One-way communication delay time between Mars and Earth, the shortest three minutes, the longest 22 minutes. Unmanned spacecraft can store the fuel, oxidizer, water, building materials and so on consumables, lay the foundation for future missions. Space Transportation System A large space station In the weightless environment of space and other space environment effects, the manufacture of semiconductor materials, special alloys, pharmaceuticals, optical materials and plant breeding, the quality of its performance is much better than the surface production, high value, it will be for future space applications new areas, and now the countries concerned are active in research work. Deep space exploration [Public system: structural systems, propulsion systems, power systems, attitude control system,           Thermal control system, rail track measuring systems, remote sensing and control systems, data           Management system fully automatic, semi-automatic, manual flight control system in the control processing system] [Dedicated system: life-support systems, instrumentation lighting system, return to the system,           Emergency and rescue systems, occupant system exception handling system]      [Special System Living Planet spacecraft system exception handling system planet survival emergency relief system ]      Mars surface area equivalent to 28.4% of the Earth's surface area, slightly smaller than the Earth's land area (29.2% of the Earth surface area). Mars is only half the radius of the Earth, so the smaller, Mars has atmosphere, but very thin, equivalent to only 0.7 per cent of the Earth's atmosphere, so that part of Mars can only withstand solar radiation and cosmic rays. However, spacecraft, we can take advantage of the atmosphere of Mars atmospheric braking (Aerobraking). Most plants and animals can not survive in extreme environments on Mars, only some microorganisms and lichens can do it. Mars surface gravity (Surface gravity) only 38% of Earth's gravity The average temperature of Mars in between 186 and 268 K (minus 87 ° C and minus 5 ° C), compared to the Earth, to much colder Mars is farther from the sun, only about half of the Earth's atmosphere which received the received solar energy (solar constant). However, Mars is not a strong atmosphere and magnetosphere blocking solar radiation. Currently atmospheric pressure on Mars is only about 7.5 mbar. Mars did not complete a magnetic field. At the same time, there is no strong Mars atmosphere. Therefore, Mars will receive a large amount of ionizing radiation. During the flight the astronauts need to be protected, because the ionizing radiation and the solar wind will damage human DNA, increase the risk of cancer. Mars Lighter Martian gravity is 0.38 times that of Earth's gravity, but the atmosphere is very thin, only 1% of the Earth's atmosphere. Only the pusher landing craft landed on Mars sad moon landing. Thin Martian atmosphere is difficult to carry out air brake, slowing the rate of decline. communication Mars and Earth at noon when communication is relatively simple, because the earth was above the horizon of Mars. As Mars and return safely to Earth, Mars is possible to set up a small base, in order to save investment. Furthermore, there are several options for landing program .A. Disposable landing, the spacecraft directly to Mars landers landing. Large high-speed airship .B freight and passenger, respectively, flew into the twin ship, in order to reduce the amount of the load, do not have large spacecraft carrying .C. multibody linked more. spaceships were marching after landing on Mars late flight plan. early Mars AB scheme good. The maximum size to reduce risk, lower landed cost, preferably A or B program .D. other options. Heavy launch vehicle development program steadily, the new launch vehicle technology are highly valued Space science brewing a new discovery, exploration of deep space technology breakthrough Promoting international cooperation in manned space technology research and development activities and to play an active role academic and technological exchanges and cooperation International Astronautical Congress, the International Astronomical Union and other countries as well, but due to the cutting-edge aerospace technology confidential technology, the development of great commercial value value, exchange of country there are considerable limits, key technical design, drawings, processes, materials, technology, technical parameters, test data and other matters.    In summary, Mars and return safely to mankind since the birth of the greatest and most difficult feat of creation, because this is not just a simple round-trip Earth - Mars, more importantly, to the infinite universe is the greatest and most important step the most successful pace, far beyond the first human landing on the moon. Once victory is successful, it will after Mars, the Moon and other planets landing probe modification and utilization of open the door, in a sense, will be completely rewritten to change the history of mankind and natural history of the universe. So, 10 cutting-edge technology ---- high-speed heavy rockets, water - preparation of oxygen, radiation and microgravity confrontation, space syndrome drugs, and other technology research and overcome, the success or failure here. ----____________________________--------------------------------------------- -------------------------------------------------- ----------------------- References major bibliography references, scientific literature, aerospace network resources, the World Encyclopedia, Encyclopedia of Great Britain right book, American Encyclopedia, Wikipedia, the universe Encyclopedia, Encyclopedia of Science and Technology, other encyclopedia Web site, AIAA, the US Department of Defense report AD, United States NASA reports the national Aeronautics and Space Administration, the US Department of Energy reports DE publication reports. Deep space probes - to protect the planet and humanity to eternal probe beyond the outer solar system - (2nd Edition) Author: Matt Love  SRAM-based FPGA fault tolerance Brazil Fernanda Lima Ka Sternberg Smith OF: (Brazil) Fernanda Lima Carsten Smith was (Brazil) Luigi Carlo (Brazil) Ricardo Rice From now to 2020, advanced propulsion systems and technologies Bruno Spacecraft Systems Engineering - (the book) Author: Fortescue Health Management System and Its Application in aerospace Author: Johnson Series of spacecraft flight - dynamics control and navigation Author: Alfred Lind Aircraft Advanced Control spacecraft and rockets Author: Tewa Rui Spacecraft Power System Author: Patel Aerospace Corrosion Control Author: Benavides Perception and evading UAV System - Research and Application Author: Angelov Thermodynamics of hypersonic aerodynamic design problem Featured Author: (Germany) Xi Sheer, (Germany) with Weiland Space systems engineering Author: (US) Larsen Space systems failures and countermeasures Tethered satellite system dynamics Author: Aspen Mascherano Author: (US) Harlan (United States) with Lorenz US space shuttle Big Secret Author: [United States] with David Baker  Spacecraft institutions and their reliability - (Second Edition) Study: Liu whole NASA Systems Engineering Handbook Zhu Yifan with Reference and extended reading websites and e-journals and other readers interested for research and inquiry information. Patent literature search can own inquiries, not detailed retrieval. Geneva International Exhibition of Inventions www.nasa.gov : Федеральное космическое агентство России Russian Federal Space Agency www.cnsa.gov.cn The United Nations Committee on the Peaceful Uses of Outer Space European Space Agency Indian Space Research Organisation Japan's space agency UK Space Agency International Academy of Astronautics  a Agência Espacial Brasileira (AEB) http://phys.org http://www.gizmag.com/ The Advisory Committee for Space Data Systems International Committee on Space Research  http://www.realclearscience.com http://www.aiaa.org/content.  http://www.sciencedaily.com/ ttp: //info.emeraldinsight.com  http://www.space.com/ http://www.sciencedirect.com http://www.springerlink.com http://www.sciencedirect.com/science/journal/ http://www.pubs.asce.org http://www.aiaa.org/  JOURNAL OF SPACECRAFT AND ROCKETS JOURNAL OF SPACECRAFT TECHNOL /  PROCEEDINGS OF THE INSTITUTION OF MECHANICAL ENGINEERS PART G-JOURNAL OF AEROSPACE ENGINEERING PROGRESS IN AEROSPACE SCIENCES http://www.sciencedirect.com http://www.jstage.jst.go.jp http://journals.pepublishing.com/ http://www.aiaa.org http://www.aerospaceamerica.org/Pages http://www.sciencedirect.com/science/journal Flight Performance of a Small Diameter Munition with a Rotating Wing Actuator Frank Fresconi, James DeSpirito, Ilmars Celmins Radius of Curvature Effects on Throat Thermochemical Erosion in Solid Rocket Motors Daniele Bianchi, Francesco Nasuti, Marcello Onofri Prediction of In-Flight Radio Frequency Attenuation by a Rocket Plume Kiyoshi Kinefuchi, Koichi Okita, Ikkoh Funaki, Takashi Abe Study on Acoustic Prediction and Reduction of Epsilon Launch Vehicle at Liftoff S. Tsutsumi, T. Ishii, K. Ui, S. Tokudome, K. Wada Approach for Modeling Rocket Plume Impingement and Dust Dispersal on the Moon Aaron B. Morris, David B. Goldstein, Philip L. Varghese, Laurence M. Trafton Study of Capsule Geometry for Dust Sample Acquisition During Mars Atmospheric Entry Quantification of Margins and Uncertainties for Integrated Spacecraft Systems Models Thomas K. WestIV, Serhat Hosder, Tyler Winter --------------------------------------------------------------------------------------------------------------------- == <code>Heading text</code> # Numbered list item == == Overloaded rockets and rocket ---- overweight humans into Mars and the universe's most powerful first pusher (Fangruida) == Overloaded rockets and rocket ---- overweight humans into Mars and the universe's most powerful first pusher (Fangruida) [http://www.academia.edu/25528069/Mars_technology_transfer_Fangruida%20Academia.edu www.academia.edu/25528069/Mars_technology_transfer_Fangruida Academia.edu] Frontier Rockets design cutting-edge technology --- overweight high-speed rocket technology and space radiation technology(FangRuida) https://www.flickr.com/photos/ <gallery> <gallery> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> </gallery> Summary Development of heavy or super heavy rocket is a revolution in aerospace science and aerospace technology. To human landing on Mars, Mercury, Jupiter's moons, the traditional rocket has considerable limitations and difficult nature. To the depths of the universe, marching, does not override overweight large rocket as a means of transport, the goal is difficult to achieve. Rocket design and development is not as big and large aerospace competition is not for the heavy weight. Otherwise, this wood upside down, meaningless. Voyage in the universe, only reload or overweight Rocket to undertake this important task. Mars, only it can be achieved. Therefore, the development of heavy-duty rocket rocket overweight imminent. Traditional rockets, miniature nuclear reactors, set-crystalline solar complementary, main mix, undoubtedly --- Human Revolution Universe depths of the universe and to enter Mars, the most powerful thrusters - reload rockets and overweight high-speed rocket. Without which it is difficult to succeed. Traditional chemical rockets and rocket compared to the advantages of new heavy-duty, mature technology, tremendous thrust, whether liquid solid rocket has great prospects to develop. However, the chemical fuel storage is a great question, blindly heightening bold rocket structure size, and preferably not the best solution. Moreover, the human landing on Mars hundreds of millions of kilometers to come and go back and forth, the huge consumption of fuel storage, chemical rockets is difficult to achieve, but also risky, long continuous flight interstellar space, face enormous difficulties. The reality may be the only effective and is overweight rockets and heavy rocket, only this one, no other way. Overloaded rockets and rocket overweight, the preferred fuel in addition to traditional chemical-oxygen engines, is nuclear - miniature nuclear reactors as well as solar energy, electricity and so on. The new rocket design and development of revolution is a revolution in the universe of space technology, the rocket can be polylactic structure - conventional engines and nuclear engines simultaneously, or a main one, the traditional main engine, auxiliary engines, nuclear power; nuclear power or engine etc, chemical auxiliary engines, more practical, safe, reliable, technology is relatively sophisticated, cost is not high. A. design. B. Design C. design. According to calculations simulation, pure chemical fuel rockets heavy rocket fuel needed hundreds of tons of nearly 1,000 tons (from Earth to fly to Mars and return calculation), the new rocket probably only need tens of tons less than one hundred tons. Earth launch takeoff traditional fuels, new energy engine spaceflight, nuclear or other energy sources, combined with a chemical engine flight. Rocket greatly reduce the overall weight, size structure do not have a high, large, thick, heavy. Of course, nuclear engine design and manufacturing should be sound, safe, reliable, non-polluting design, mature technology. reactors since a sealing structure, safe, reliable, non-polluting, self-separation device self-destruct mechanisms in case of emergency applies. Overweight rocket can double the overall structure propulsion, but also the main and auxiliary propulsion, using conventional chemical engine thrust at launch, flying earth voyage to switch nuclear power or solar propulsion, but also two-phase propulsion rocket monomeric main structure, attached to the multi-level structure, can be dual structure, key technology and micro-jet nozzles and other nuclear reactors, solar-crystal panels, chemical fuel storage tank is limited. overloaded rocket attached to other equipment voyage, landed tanks, mainly for remote Frontier Rockets design cutting-edge technology --- overweight high-speed rocket technology and space radiation technology Rocket propulsion technology research, space radiation protection material development. Frontier Rockets design cutting-edge technology --- overweight high-speed rocket and space radiation breakthrough design and related manufacturing techniques and crafts. Rocket propulsion technology research, space radiation protection material development. (1) rocket thrust improvements and technical studies, large heavy-duty large rocket heavy rocket design and manufacturing. (2) radiation is extremely important for human space flight and aerospace and other life on our planet health, work and so on. Therefore, there must be a major aerospace field of space technology breakthroughs, rocket design and design of radiation close to important. Countries in the world have invested a lot of manpower and resources research, a lot of results, is very gratifying. However, any technology has its life cycle, age limitations, you can not let the ancients aircraft design and manufacture of automobiles; Similarly, at this stage of human studies can be designed and manufactured hundreds or even thousands of years after laser spacecraft for human use and the like s things. Mars Jupiter Galaxy only dozens of days time to leap from the earth. A particularly important technology to create will take a long time to accumulate the process, or even thousands of years, will not happen overnight. Ancient zodiac dreams and myths, has undergone a full 5,000 years or even tens of thousands of years can be said to be several hundred thousand years was able to achieve, to become a true reality. Fantasy and science need to create, however, they need appropriate practical step by step, this is the human need to have the strength and wisdom. In the current, heavy rocket technology and radiation protection in the basic technology is difficult to promote the stage, we need serious consideration, repeated studies, solid and steady progress. Especially in aerospace technology inscrutable, technical difficulties related to doubts, even the slightest advance any very arduous. A wide variety of technical solutions a lot, but more practical proven viable technology is not much, aerospace technology high risk and high investment, not indeed of technology validation, only shelved. Who will not easily go in this huge bottomless black hole in white spread the money, even the purely scientific exploration of scientific research and the like. Radiation shielding material, too, in addition to traditional radiation shielding material, is the development of new materials, radiation synthesis of new materials, polymeric materials and polymer lead, titanium and other dimerization complex, as well as radiation protection coatings. Layer structure, the base layer, reinforcing layer, interlayer, the main material radiation, radiation Fucai, isolated layers and the like, including spacecraft design, suit design. Nuclear rocket engine is used by the tremendous heat generated during the fission of nuclear fuel, the propellant is heated to very high temperatures (4000 ℃ above). Thus obtaining the kinetic energy of the propellant, is ejected at high speed from the rear, so as to promote high-speed rocket flight. Since the nuclear fuel small size, heat, nuclear rocket can achieve light weight, small size and other advantages. In the past, countries in the world more than the study of nuclear rocket engine called "overheating nuclear jet engine." At its core it is a small size of the nuclear reactor, nuclear fuel into fuel elements, arranged in the core. When you start the liquid hydrogen into the core, quickly turned into a few thousand degrees Celsius temperature gas after heating, high-speed jet out from the tail of the rocket, a huge thrust, this engine is relatively easy to implement, it may be more economical than chemical rockets. But because the impulse is not big enough, not as a remote interplanetary navigation tools. But it can play an important role in the universe voyage. "Plasma extruded core engine" Its heart is a nuclear reactor, but the reactor is not used for heating, but for power. At startup, the Y-shaped vacuum chamber injection Xianxiang propellant (such as hydrogen), then immediately closed up at both ends, and the on-current, so that the propellant is heated to 70 million degrees Celsius. In this case the propellant has become a high-temperature plasma, it is driven by the electromagnetic force, the tail is ejected from the rocket. "Gas core nuclear engine." It is based on gaseous uranium or plutonium instead of solid fuel, the use of gas fuel fission reaction to release heat from the liquid hydrogen fuel tank is heated to very high temperatures (9000 ℃ above), with a strong push rocket exhaust stream. "Nuclear explosion vented engine." To launch a small explosion when the indoor inject explosive agents, the use of the enormous pressure generated by a nuclear explosion on the wall to push the rocket forward. Laser, nuclear energy, light pressure and antimatter four new propulsion technology, is research and development. At this stage, not enough to enter the development stage. Currently the vast majority of all vehicles and spacecraft are the use of solid and liquid chemical propulsion, its main drawback is the low energy density. Fuel rocket engine carried to the total weight of more than 90%, so the benefit-cost ratio is low, less secure. Propulsion, ie long-range emits high-energy laser, spacecraft after a reverse parabolic mirror to focus the heated gas, gas thermal expansion thrust. These projects are still being studied. Promoting nuclear energy, the use of nuclear energy generated by the reaction was heated working fluid or plasma generation high-speed jet thrust. This corresponds to engage in a small nuclear reactor on an aircraft. Light pressure propulsion, aircraft use this technology as a sailboat, sunlight or other particle stream impinges on windsurfing, sail thrust based on the pressure of light on both sides. Antimatter propulsion, today's advance technology to promote the highest speed of about 20 kilometers per second, can not achieve interstellar flight. Antimatter propulsion aircraft will be possible to reach the speed of light. The principle is, charged particles in a strong electric field, the ejection speeds approaching the speed of light. Nuclear rocket engine is used by the tremendous heat generated during the fission of nuclear fuel, the propellant is heated to very high temperatures (4000 ℃ above). Thus obtaining the kinetic energy of the propellant, is ejected at high speed from the rear, so as to promote high-speed rocket flight. --- Human Revolution Universe depths of the universe and to enter Mars, the most powerful thrusters - reload rockets and overweight high-speed rocket. Without which it is difficult to succeed. Traditional chemical rockets and rocket compared to the advantages of new heavy-duty, mature technology, tremendous thrust, whether liquid solid rocket has great prospects to develop. However, the chemical fuel storage is a great question, blindly heightening bold rocket structure size, and preferably not the best solution. Moreover, the human landing on Mars hundreds of millions of kilometers to come and go back and forth, the huge consumption of fuel storage, chemical rockets is difficult to achieve, but also risky, long continuous flight interstellar space, face enormous difficulties. The reality may be the only effective and is overweight rockets and heavy rocket, only this one, no other way. Overloaded rockets and rocket overweight, the preferred fuel in addition to traditional chemical-oxygen engines, is nuclear - miniature nuclear reactors as well as solar energy, electricity and so on. The new rocket design and development of revolution is a revolution in the universe of space technology, the rocket can be polylactic structure - conventional engines and nuclear engines simultaneously, or a main one, the traditional main engine, auxiliary engines, nuclear power; nuclear power or engine etc, chemical auxiliary engines, more practical, safe, reliable, technology is relatively sophisticated, cost is not high. A. design. B. Design C. design. According to calculations simulation, pure chemical fuel rockets heavy rocket fuel needed hundreds of tons of nearly 1,000 tons (from Earth to fly to Mars and return calculation), the new rocket probably only need tens of tons less than one hundred tons. Earth launch takeoff traditional fuels, new energy engine spaceflight, nuclear or other energy sources, combined with a chemical engine flight. Rocket greatly reduce the overall weight, size structure do not have a high, large, thick, heavy. Of course, nuclear engine design and manufacturing should be sound, safe, reliable, non-polluting design, mature technology. Since the nuclear fuel small size, heat, nuclear rocket can achieve light weight and small size. Study abroad more than the nuclear rocket engine called "overheating nuclear jet engine." At its core it is a small size of the nuclear reactor, nuclear fuel into fuel elements, arranged in the core. When you start the liquid hydrogen into the core, quickly turned into a few thousand degrees Celsius temperature gas after heating, high-speed jet out from the tail of the rocket, a huge thrust, this engine is relatively easy to implement, it may be more economical than chemical rockets. But because the impulse is not big enough, not as a remote interplanetary navigation tools. "Plasma extruded core engine" Its heart is a nuclear reactor, but the reactor is not used for heating, but for power. At startup, the Y-shaped vacuum chamber injection Xianxiang propellant (such as hydrogen), then immediately closed up at both ends, and the on-current, so that the propellant is heated to 70 million degrees Celsius. In this case the propellant has become a high-temperature plasma, it is driven by the electromagnetic force, the tail is ejected from the rocket. "Gas core nuclear engine." It is based on gaseous uranium or plutonium instead of solid fuel, the use of gas fuel fission reaction to release heat from the liquid hydrogen fuel tank is heated to very high temperatures (9000 ℃ above), with a strong push rocket exhaust stream. With such a nuclear rocket engine can shoulder the glorious mission to Mars trip. "Nuclear explosion vented engine." To launch a small explosion when the indoor inject explosive agents, the use of the enormous pressure generated by a nuclear explosion on the wall to push the rocket forward. Times.  High-speed heavy rocket principle structure diagram, Fig. Separable manned rocket rocket rocket and cargo (ship), the overall design includes a header ((A) rocket (B) front structure (C) of the main structure (D) terminal structure (E) the other part. Of course, it can be integrated design, both passengers and freight, combined. And corresponding schematic are: 1. The main rocket propulsion device attached to traditional fuels Configuration 2. miniature nuclear or ion thruster engine to automatically switch to be high-shaped solar collector plate is arranged and similar jet nozzle switching means expand runs in aerospace. 3. The body of the fuel tank 4. The auxiliary fuel tank storage. 5 multistage rocket hierarchy. 6. The overall structural design of interlocking, overlapping design, to minimize the size and weight of their own. 7. rocket diameter should be maintained at between 8.5 meters -12.7 meters, within rocket lengths up to 89.6 meters -128 meters, its own weight and the maximum load must be a strict conventions, load up to 450 tons -500 tons. Off mass of more than 4,000 tons can be large, space payload between 350-400 tonnes, specific impulse, thrust, etc. within the limits of the take. Constant between 250-350 tons. 7. freight rockets and manned rocket structure, there are many similarities and differences. Manned load control between 54 tons -80 tons of cargo rocket can increase the load, but must comply with the relevant technical specifications. 8. manned rocket (spacecraft) are integral material with radiation, temperature, and other characteristics, living spaces, working spaces, the return capsule landed warehouse, reserve tanks (emergency wrecker and life support systems, health care systems overlap design, reserve tanks versatile, if necessary, its own flight taking off and landing). 8. Special multi-purpose smart suit. 9. The computer program control using rocket duplex programming, technology and equipment to ensure complete interchangeability of alternative replacement properties of the bench. 10. The large heavy-duty rocket complex technical equipment, its weight is large, take-off weight is also very impressive, they are among dozens of tons of load hundreds of tons, payload of at least 350 tonnes above. The overall design of complex, cross, interactive, complex overlapping, sub-segment, subsystem staggered, high-end manufacturing technology requires more perfect. Propulsion systems, control systems, communication systems, operating systems, living systems, security systems, emergency escape systems, medical aid system, radiation protection system, accidental disposal system, arrows first telemetry systems, landing cabin, return capsule systems, etc., many complex both independent and set polymerization, prone to various failures and accidents. Heavy rocket launch means that with a low capacity, different types of satellites in Earth orbit and different high manned spacecraft, a takeoff thrust of 3,500 tons of low-Earth orbit carrying capacity: 100 tons; geosynchronous orbit carrying capacity: 18 tons; fly to the moon's orbit carrying capacity: 32 tons; fly to Mars and Venus orbit carrying capacity reaches: 28 tons. Super-heavy launch vehicle rocket carrying capacity refers to the proportion of more powerful rockets, super-heavy launch vehicle for a more focused service in near-Earth orbit to the moon's heavy rocket compared to the deep exploration of the universe, such as a manned landing on Mars and probe the solar system planets outside. Using traditional fossil fuels and other auxiliary propulsion, micro nuclear reactor jet nozzle technology or solar collector crystal converter, you can switch control. Traditional chemical-fueled mainly on the ground take-off stage, you can use other propulsion into outer space. Designed with interlocking and automatic switching. To avoid overly complex and cumbersome mechanism, miniature nuclear reactor jet nozzle from a closure sealing system, and with a variety of protective measures and protection equipment, special treatment can be taken in case of emergency. If the configuration set high polymer crystal solar converter, using specially prepared materials. This heavy-duty high-speed rocket complex, chemical fuel storage can be more or less, in addition to sail away from the Earth, can play a major role in micro reactors, nuclear fuel storage capacity of small, less than 1% -3% of the conventional chemical fuel, suitable Astronautical long. In addition, the solar collector crystal transducer can maximize the use of solar energy. This feature is designed primarily large heavy-duty rockets, small rocket thrusters does not require many complex and propellant. Large heavy-duty high-speed rocket, called the giant space rocket 11-12.5 meters in diameter, height of 125 meters between -130 meters, a takeoff weight of 5,000 tons, the maximum load of 150-300 tons of payload 200 tons, suitable for long-distance long flight .. Known universe carrier spacecraft. Integrated high polymer technology, compact cluster system, in particular the use of self-locking miniature neutron source reactor sealing system, safe and reliable pollution, emergency automatic locking and special treatment. Heavy duty, light weight, thrust, energy, security, precision equipment, rockets and spacecraft systems using composite overall design, radiation protection, under-owned emergency medical systems and special critical situations can start backup aircraft (standby rockets) escape and return . After all an ample supply of fuel, can fly continuously for six months or more than a year in space. Giant super-heavy rocket rocket strictly control the slenderness ratio, stiffness ratio, height and diameter is not bigger is better, and to the physical structure, engine configuration, fuel, thrust, specific impulse, load, weight, quality and other technical parameters take-off match In the history of human spaceflight, the most distinguished scientists, including Tsiolkovsky, Robert. Goddard, Hermann. Obert, Croatia Korolev, Glushko, Feng. Braun made a significant contribution to this end and so on. In humans left towards Earth, into space career invaluable rich heritage, affecting future generations, which makes the human begin today to the Moon, Mars, Jupiter, Venus, Mercury, and other stars and vast universe march. Such as rocket technology, regardless of liquid rocket engine, or a solid engine, or a hybrid rocket engine technology not only great scientific value, commercial value is priceless, immeasurable. Rocket technology not only belong to aerospace engineering, but also the most important military frontier research projects. Missile technology and rocket technology are inseparable, but different. In heavy-duty rocket technology and aerospace technology in terms of radiation, respectively, in the commercial value of $ 1.5 trillion and $ 700 billion. (According to the rules and techniques of international trade market valuation, the civil provisions of the peaceful uses of outer space, the value is not less than the above price valuation and technology transfer). The core technology of key technologies, we can see the importance of rocket technology and sophisticated, the profits to be overlooked. According to global statistics rocket engine manufacturers, rocket engines and rocket annual sales of about hundreds of billions or even trillions of dollars. Lockheed. Martin company, for example: NASA "Saturn 5" rocket is a rocket family, "Big Mac", the level 3 rocket in the late 1960s and early 1970s, has been used in the NASA moon. Like "Ares IX" rocket "Saturn 5" rocket is also from Florida's Kennedy Space Center launch, its height is 110 meters (363 feet), the rocket can carry 45 tons of goods sent to the moon, or carrying 120 tons of goods to the Earth's orbit. "Saturn 5" rocket fuel in a completely filled state ready to launch, a total weight of 3 million kilograms (6.5 million lbs).  China's "Long March" is also No. 3 A three liquid rocket booster, a secondary conventional fuel, the third stage of hydrogen oxygen fuel. The third stage by a 2.25 m diameter increased to 3 meters, and increase the tank length, the propellant from 8.2 tons to 17.6 tons. Total takeoff weight of 240 tons, a takeoff thrust of 300 tons, which synchronous transfer orbit carrying capacity from 1.4 tons to 2.6 tons.   R & D focus and cutting-edge aerospace technology sector today include large and giant rockets and heavy load and other problems of radiation direction. United States and Russia and other Central European countries start their own design and development of large and giant rocket success. Whether manned or unmanned flight, heavy-duty high-speed large rocket rocket rocket overweight and related technologies is essential, second to none, it is the leader in space technology ahead of God. No matter how large, the basic use of conventional fuels, hydrogen oxygen fuel and other chemical-based. But in the long distance flight, tank volume is bound to increase, propellant storage capacity also increases. If to Mars and return to Earth, storage tanks also need more fuel propellant, the rocket is bound to increase its own weight. In this case, increasing the diameter of the rocket, height also increased significantly. Not the bigger the higher the better, exceeding the limit is not conducive to the voyage, but also easily lead to a variety of security failures flight accidents, causing the arrow crash tragedy. Especially a human into the depths of the universe, continuous flight a year or so, hundreds of millions or billions of kilometers, small rockets and rocket ships load hardly reach. Hundreds of tons of conventional fuel storage needs, it is difficult to achieve, accident prone. Therefore, the development of new heavy-duty rocket to strictly abide by its rules, can not be arbitrarily created. Otherwise, the consequences could be disastrous. Using traditional fossil fuels and other auxiliary propulsion, micro nuclear reactor jet nozzle technology (nuclear energy conversion device), or a solar collector crystal converter, you can switch control. Traditional chemical-fueled mainly on the ground take-off stage, you can use other propulsion into outer space. Designed with interlocking and automatic switching. To avoid overly complex and cumbersome mechanism, miniature nuclear reactor jet nozzle from a closure sealing system, and with a variety of protective measures and protection equipment, special treatment can be taken in case of emergency. If the configuration set high polymer crystal solar converter, using specially prepared materials. This heavy-duty high-speed rocket complex, chemical fuel storage can be more or less, in addition to sail away from the Earth, can play a major role in micro reactors, nuclear fuel storage capacity of small, less than 1% of conventional chemical fuel, suitable for long universe sailing. In addition, the solar collector crystal transducer can maximize the use of solar energy. This feature is designed primarily large heavy-duty rockets, small rocket thrusters does not require many complex and propellant. Large heavy-duty high-speed rocket, called the giant space, structure, size rocket 11-12.5 meters in diameter, height of 125 meters between -130 meters, a takeoff weight of 5,000 tons, the maximum load of 150-300 tons of payload 200 tons or more, astronauts can take 5-15 people, the standard crew of seven. Suitable for long distance flight. Of course, the size of the structure can be relatively reduced or greatly reduced, mainly determined according to the type of fuel and engine. If the main engine for the nuclear engine, and other new propulsion, structure size can be changed. Because no large-capacity storage tank and multi-stage rocket multi-split structure, which greatly reduce the structure of the device components. Nuclear-based, conventional propeller propulsion main auxiliary flight. The key technology is the micro-reactors and other propulsion device. In contrast, conventional propulsion based, nuclear and solar auxiliary thrust, is a good choice. Options and permutations and combinations should be determined depending on the circumstances. Large heavy-duty rockets, should be simple, but they simply can not be too simple, otherwise, thrust, specific impulse, that insufficient load. Difficult to complete hundreds of millions of billions of kilometers of continuous space flight. Mars has no such large heavy flagship, it is difficult to succeed. Aircraft carrier known as cosmic spaceship, high-technology dimerization integrated, compact cluster system, in particular the use of self-locking miniature neutron source reactor sealing system, safe and reliable pollution, emergency automatic locking and special treatment. Heavy duty, light weight, thrust, energy, security, precision equipment, rockets and spacecraft systems using composite overall design, radiation protection, under-owned emergency medical systems and special critical situations can start backup aircraft (standby rockets) escape and return . After all an ample supply of fuel, can fly continuously for six months or more than a year in space. It illustrates the schematic diagram of the structure, not the regular design. (Involving the core technology secrets and technical part, it will be omitted. Schematic is to develop large heavy duty main structural principle of the rocket, and the future development of the design and manufacture of new high-speed heavy-duty rockets important part of this stage of aerospace science and technology space, also human landing on Mars, the moon, Venus, Mercury, Jupiter satellite, an important tool for aerospace and transportation.) technical complexity, the essence, but also to maintain the unity of the self-contained cartridge resistance, try to reduce unnecessary structural components, reducing its own weight and the weight of the device, in order to facilitate the universe voyage. Of course, small rocket can Shanfanjiujian without so complicated. Aircraft carrier in space total cost of about $ 30 billion -500 billion. However, it and the space shuttle, the space station is very different, due to extensive use of new carrier space means equipment can be effectively recovered, repeated use, thus greatly reducing the cost and fees. For example, after taking off from Earth after flying in outer space you can cross, direct access to the moon or Mars. After reaching the destination, you can start landing means landing capsule, astronauts and cargo equipment falling to the planet's surface, and then continue the flight or return to Earth. This multistage rocket ships gradual separation of different, and ultimately disposable rocket returned to Earth, leaving only the return capsule after passing through the atmosphere, all the other abandoned in space. VK = Pb g0 Ln [(GT + GJ) / GJ] Tsiolkovsky formula: Where: VK eleven rockets terminal velocity; Pb eleven thrust ratio (specific impulse); effective structural quality GJ-- rocket, including; g0 a ground acceleration of gravity; GT— propellant rocket takeoff load. Rockets general, leaving only after return to Earth through the atmosphere the return capsule, all the other abandoned in space. Overloaded rocket acceleration orbit and other mainly rely on the powerful thrust and propeller were, therefore, the use of multi-stage rocket separated without too much structure. Space Shuttle main three parts (1) Orbiter: Orbiter is a core part of the space shuttle, the whole system is only manned space shuttle, a reusable part. (2) solid boosters: the role of the solid boosters boost for less than supplement the main engine thrust. For reuse. (3) external tank: Space Shuttle main engine is a liquid rocket engine, liquid fuel propellant is liquid oxygen and liquid hydrogen. Mainly applicable to outer space shuttle earth near-Earth space flight landed, and the universe is mainly applied to the carrier long distance space shuttle flight, mainly rocket system, of course, some of the features of both the space shuttle. It is actually a giant rocket reload rockets. Mainly from Earth to other planets distant interplanetary missions, manned or freight, doubles as other uses. Particularly as applied to the moon to Mars and other large heavy-duty vehicles. Shuttle and heavy rockets are not the same, the former near-Earth space flight. F-1 rocket engine US-developed the world's largest single-chamber liquid rocket engine thrust for the Saturn V rocket, a single thrust of 700 tons of kerosene fuel, liquid oxygen as the oxidant. Detailed data of the F-1: Burning form: open cycle gas generator, liquid - liquid combustion Propellant: Kerosene - liquid oxygen Thrust: sea 690.988 tons Vacuum 793.683 tons Specific impulse: sea level 255.4 seconds (average of 70 engines) Vacuum 304.1 seconds Diameter: 3.645 m Length: 5.598 m Total weight: 8451.66 kg Work propellant flow: Kerosene: 838.2 kg / sec, liquid oxygen 1784.7 kg / sec Turbopump power: 46,225 kilowatts Design Starts: 20 Design Life: 2250 seconds RD-170 rocket engine Russia developed the world's largest thrust liquid rocket engine using liquid oxygen + kerosene, a single thrust of 800 tons (four-chamber, four-nozzle design, it is also suggested that the four engines in parallel, but the share of gas turbine generators and pumps) for energy and the carrier rocket Zenit launch vehicle (RD-171 rocket engine, improved on the RD-170) first stage. RD-191 rocket engine, single thrust of 200 tons, the single-chamber single nozzle, equivalent to RD-170 and then split into two, for russia rocket. RD-191 RD-151 model derivatives were sold to South Korea for the first stage of the Naro-1. RS-68 rocket engine US-developed the world's largest hydrogen-oxygen engines thrust, thrust 300 tons for the Delta IV rocket first stage. RD-0120 rocket engine Russian thrust largest hydrogen oxygen rocket engine, 200-ton thrust for energy carrier rocket main engine. Space Shuttle Main Engine (SSME) US space shuttle main engine, the use of hydrogen oxygen, 200 tons of thrust, the biggest feature is reusable. Space Shuttle Solid Rocket Motor The world's largest rocket engine thrust, a single thrust of up to 1,200 tons, can be reused 10 times, tied for the US space shuttle boosters, which improved for the Ares 1 rocket and driving machine Ares 5 rocket boost Bundle device. Saturn S-IC 5 a propellant kerosene / liquid oxygen from the front skirt, liquid oxygen tank, between the tank section, kerosene tank and thrust structures, length 42m, diameter 10m. Tank material is 2219-T87, panel size 3.35m × 7.92m, two Saturn V S-Ⅱ propellant liquid hydrogen / liquid oxygen, riveted by the housing segment, hydrogen oxygen tank, thrust structure and other components. three stage S-ⅣB propellant liquid hydrogen / liquid oxygen, the front skirt with a total propellant tank bottom, rear apron, interstage section, thrust structures, the length of 17.8m, a diameter of 6.7m. And S-Ⅱ Similarly, the use of liquid hydrogen and liquid oxygen co-substrate structure. US space shuttle external tank diameter of 8.38m, total length of 47m. Liquid oxygen tank diameter 8.4m, length 16.64m; liquid hydrogen tank diameter 8.4m, length 29.48m, 6.4m long by the four barrel section, five ring bulkheads and ellipsoid around the bottom and so on. Fission class rocket engine whose essence is the miniaturization of nuclear reactors, and placed on the rocket. Nuclear rocket engine fuel as an energy source, with liquid hydrogen, liquid helium, liquid ammonia working fluid. Nuclear rocket engine mounted in the thrust chamber of the reactor, cooling nozzle, the working fluid delivery and control systems and other components. In a nuclear reactor, nuclear energy into heat to heat the working fluid, the working fluid is heated after expansion nozzle to accelerate to the speed of 6500 ~ 11,000 m / sec from the discharge orifice to produce thrust. Long-lived nuclear rocket engine specific impulse (250-1000 seconds), but the technology is complex and is only applicable to long-term spacecraft. This engine due to nuclear radiation protection, exhaust pollution, reactor control and efficient heat exchanger design and other issues not resolved, Nuclear fusion rocket engine is considered to be the most potential to achieve within the solar system flying rocket engine, similar to its principles and chemical rocket, just three fuel into hydrogen isotope deuterium, tritium and helium, nuclear fusion reactions release tremendous energy to push the rocket, compared to several orders of magnitude higher than chemical rockets. Since the substance produced by fusion nuclear reactions is neutrons, protons and helium, and therefore can not be used within the Earth's atmosphere, but the space itself is full of all kinds of radiation, so there is nothing wrong in the use of space. Fusion rocket engine main problem to be solved is the high-temperature materials, ignition and fuel cell technology problems. In summary, heavy rocket overweight rocket technology into the depths of the human universe, the most important is the uniqueness of the cutting-edge technology of space vehicles. Mars, Venus, Mercury, Jupiter satellite, the Moon, flying out of the solar system, the galaxy fly without it simply can not be done and achieved. Mars and the Moon is the transformation of the impossible. Traditional chemical propellant obvious advantages, the technology is relatively mature and complete, indeed the preferred R & D to develop heavy-duty rocket propulsion; however, due to the long flight, fuel storage excessive, long distance flying difficult. And be able to return to Mars is extremely difficult. Therefore, we need a new heavy-duty rocket thrust of research to improve fuel, engine design, nuclear, solar and other uses or closely integrated to become a very important source of propulsion. Therefore, in the present case, heavy rockets and rocket propulsion overweight is a combination of both, or preferably. Earth takeoff stage of flight from the traditional engine start, after a long-distance flight flying planet or solar engine can use nuclear propulsion engines. When returned to Earth, Mini nuclear reactors can also be sealing abandoned the camera back, the Rockets may revoke or partially recovered in the ground. Rocket design, including hardware and software, computer control program a lot, especially in heavy-duty rocket design, manufacture, test, test, process control is very important. Programming, for example, -module (mathStuff). -export ([factorial / 1, area / 1]). factorial (0) -> 1; factorial (N) when N> 0-> N * factorial (N-1). % Calculated area of the square, the first match square parameter tuple area ({square, Side}) ->      Side * Side; % Calculated area of a circle, matching circle area ({circle, Radius}) ->     % Almost :-)     3 * Radius * Radius; % Calculated area of a triangle using Heron's formula, matching triangle area ({triangle, A, B, C}) ->     S = (A + B + C) / 2, math: sqrt (S * (S-A) * (S-B) * (S-C)); %other area (Other) ->     {Invalid_object, Other} Rocket design development, and manufacturing, professional software is essential. CAD, OpenRocket, SpaceCad, and simulation software, calculation software, three-dimensional drawing software abound. Software and programming for the design development and manufacturing heavy-duty large rocket experiment is also very important. Overloaded rocket rocket overweight due to structural, engine and fuel with traditional chemical rocket engine design and development of chemical fuels have very different, but also extraordinarily complex calculation, therefore, research and development to develop new rocket reload software is imperative, especially dynamic binding is a multi-poly design calculation, more complex. ________________________________________________________________________________________________________________________________________________________________Enc:Peaceful uses of space technology for the global list of cutting-edge technology transfer projects * Related mainly for large-scale R & D institutions, manufacturers, aerospace companies of various types * Providing patent class style drawings or technical know-how, structure diagram, etc. * In accordance with the relevant United Nations Peace International Convention on the use of outer space, the transferee shall provide qualified information otherwise not be transferable. {Technology patented formula provides technical drawings or class structure diagram, technical know-how, science and technology common English language, the transfer fee in US dollars or other international common currency. Within three months after signing the contract or agreement, the delivery of technical and technological entry fee deposit transfer technical drawings simultaneously transfer the transferee. Innocent breach of contract, 70% -80% of the total value of compensation projects, technology should be compensation in full. The transfer of technology may apply for international patents, patent ownership transferee all the transferor no longer enjoy their benefits. Transfer of technology projects to provide electronic and paper drawings each copy in English. Technical consulting fees extra. General reception advice not only for the contracting parties and effective}. Technology Item Technical Code technology transfer fee (US $ billion) generic technology entry fee (US $ billion) technical margin (US $ billion) 1. [] overloaded rocket 00A054378120 75 15 10 2 [.] Anti-radiation technology 00a054389127 50 7    3 [.] Space Syndrome Prevention Technology 00A0543764 38 5    18 4. [space] emergency medical technology 00B0832680 40 2 3 [5.] Mars landing aircraft 00A4438963 15 4.5               N.S T institute of space technology research firm                      Add: Geneva Roma       Bank:    Contact e-mail or fax   e-mail:rsalan606@yahoo.com,scott.gf@yahoo.com,fangruida389@gmail.com utilisations pacifiques de la technologie spatiale pour la liste globale des projets de transfert de technologie de pointe * Connexes principalement pour la R & D des institutions à grande échelle, les fabricants, les entreprises aérospatiales de divers types * Fournir des dessins de style de classe de brevet ou de savoir-faire technique, diagramme de structure, etc. * Conformément à la Convention internationale de la paix des Nations Unies pertinentes sur l'utilisation de l'espace, le cessionnaire doit fournir des informations qualifiées autrement ne pas être transférables. {Technology formule brevetée fournit des dessins techniques ou de la structure de classe diagramme, savoir-faire technique, de la science et de la technologie de langue anglaise commune, les frais de transfert en dollars américains ou autre monnaie commune internationale. Dans les trois mois après la signature du contrat ou d'un accord, la livraison des dessins techniques de transfert de dépôt de droit d'entrée techniques et technologiques transférer simultanément le cessionnaire. Innocent violation du contrat, 70% -80% de la valeur totale des projets de compensation, la technologie devrait être une compensation en totalité. Le transfert de technologie peut demander des brevets internationaux, la propriété brevet cessionnaire tout le cédant plus profiter de leurs avantages. Transfert des projets de technologie pour fournir des dessins électroniques et de papier chaque copie en anglais. frais de consultation techniques supplémentaires. des conseils de réception général non seulement pour les parties contractantes et efficace}. Technologie Code article technique des frais de transfert de technologie (G $ US) des frais d'entrée de technologie générique (US $ milliards) marge technique (US $ milliards) 1. [] fusée surchargé 00A054378120 75 15 10 2 [.] De la technologie anti-rayonnement 00a054389127 50 7    3 [.] La technologie de prévention Syndrome espace 00A0543764 38 5    18 technologie médicale 4. [espace] d'urgence 00B0832680 40 2 3 [5.] Mars atterrissage des avions 00A4438963 15 4.5               N.s T institut du cabinet d'études de la technologie spatiale                      Ajouter: Genève Roma       Banque:    Contact e-mail ou par fax   E-mail: Мирное использование космической техники для глобального списка проектов по передаче передовых технологий * Связанные в основном для крупномасштабных R & D институтов, производителей, аэрокосмических компаний различного типа * Предоставление чертежей стиля патента класса или технического ноу-хау, структурную диаграмму и т.д. * В соответствии с соответствующей Международной конвенции Организации Объединенных Наций в пользу мира по использованию космического пространства, принимающая сторона должна предоставить квалифицированную информацию в противном случае не будет передаваться. {Технология запатентована формула обеспечивает технические чертежи или структуру класса диаграммы, технические ноу-хау, науки и техники общего английского языка, оплата за перевод денег в долларах США или другой международной единой валюты. В течение трех месяцев после подписания договора или соглашения, поставка технических и технологических вступительный взнос депозитным переводом технических чертежей одновременно передавать правопреемника. Иннокентий нарушение договора, 70% -80% от общей стоимости компенсационных проектов, технология должна быть компенсация в полном объеме. Передача технологии может подать заявку на международные патенты, патент собственности правопреемника все поклажедатель больше не пользуются их преимуществами. Передача технологических проектов для предоставления электронных и бумажных чертежей каждую копию на английском языке. Технический консалтинг сборы дополнительно. Общий прием советы не только для договаривающихся сторон и эффективным}. Технология Пункт Технический кодекс Стоимость трансфера технологий (US $ млрд) общая технология вступительный взнос (US $ млрд) технический запас (US $ млрд) 1. [] перегружен ракета 00A054378120 75 15 10 2 [.] Anti-радиационная технология 00a054389127 50 7    3 [.] Технология предотвращения Космический синдром 00A0543764 38 5    18 4. [пробел] скорая медицинская техника 00B0832680 40 2 3 [5] Марс посадки самолетов 00A4438963 15 4.5               N.S T институт космической техники исследовательской фирмы                      Добавить: Geneva Roma       Банк:    Как связаться по электронной почте или по факсу   Электронная почта: == Standing on top of the planet (Fang Ruida) == Standing on top of the planet (Fang Ruida) ************************************************** (Fangruida poetry in 2002 in the Andes, the Amazon River, the author of the natural sciences when the study, after the Everest expedition when the draft .This poem once compose, piano concerto, lyrics by Fang Ruida created) Multilingual control global electronic version of the e-book, translation Miss louise, Dr. Boer school review, --------------------------------------------------------------------------------------------------------------------------------- Standing on top of the earth Overlooking the sun rising in the East Crimson crimson white clouds The endless stream of mountains and rivers Golden earth golden world Bright pearl gorgeous luster Regardless of the horizon Regardless of the four continents The world is full of sunshine. The The The The Standing on top of the moon Overlooking the sun rising in the East Crimson clouds of light clouds Sleeping mountains quietly passing river The land of the golden land is not reclaimed Endless treasures flashing fluorescence Beautiful and rich on the sea Seems to surging shaking sea waves A ship is anchored. The The The The The Standing on top of Mars Overlooking the sun rising in the East The Olympic torch is raging The fire flies out of the chest The vast plains of the canyon Humans meet tomorrow's glory Beautiful and rich heaven The god of freedom is singing Boundless skyline, stars, galaxy, newborn sun 站在星球之巔(方瑞達) ************************************************** (Fangruida 詩歌2002年作於 安第斯山脈,亞馬孫河畔,作者自然科學考察時所作,後在珠穆朗瑪峰科考時完稿。此詩歌一度譜曲,鋼琴協奏曲,詞曲均由方瑞達所創) 站在地球之巔 眺望著東方升起的太陽 緋紅色的錦霞 乳白色的雲朵 迷濛的群山 奔流不息的江河 金色的大地 金色的世界 璀璨的明珠 艷麗的光澤 不論海角天涯 不論四海五洲 世界到處充滿陽光。 。 。 。 。 站在月球之巔 眺望著東方升起的太陽 緋紅色的彩霞 淡淡的雲翳 沉睡的群山 靜靜流逝的江河 金色的大地 未開墾的土地 無盡的瑰寶 閃爍的熒光 美麗富饒的月海 似乎又湧動驚天的海波 一艘艘巨輪正起錨遠航。 。 。 。 。 。 站在火星之巔 眺望著東方升起的太陽 奧林匹克火炬熊熊點燃 烈火飛蹦出胸膛 遼闊的平原 寬廣的峽谷 人類又迎接明天的輝煌 美麗富饒的天國 自由之神 衷情歌唱 無邊的天際,星星,銀河,新生的太陽 Debout sur la planète (Fang Ruida) ***************************************************************************** (Poésie Fangruida en 2002 dans les Andes, le fleuve Amazone, l'auteur des sciences naturelles lors de l'étude, après l'expédition de l'Everest lors de l'ébauche. Ce poème a déjà composé, le concerto pour piano, des paroles de Fang Ruida créées) Debout sur le dessus de la terre Surplombant le soleil qui monte dans l'Est Nuages ​​blancs cramoisus cramois Le fleuve sans fin des montagnes et des rivières Monde doré de la terre Lustre brillant brillant brillant Indépendamment de l'horizon Indépendamment des quatre continents Le monde est plein de soleil. The The The The Debout sur la lune Surplombant le soleil qui monte dans l'Est Nuages ​​crépus de nuages ​​légers Des montagnes douces qui passent tranquillement la rivière Le pays des terres d'or n'est pas récupéré Trésors sans fin clignotant de fluorescence Belle et riche sur la mer On dirait des ondes de mer tremblantes Un navire est ancré. The The The The The The Debout sur Mars Surplombant le soleil qui monte dans l'Est La torche olympique fait rage L'incendie sort du coffre Les vastes plaines du canyon Les humains rencontrent la gloire de demain Paradis magnifique et riche Le dieu de la liberté chante Horizon sans limites, étoiles, galaxie, soleil nouveau-né Стоя на вершине планеты (Fang Ruida) ************************************************** (Поэзия Fangruida в 2002 году в Андах, река Амазонка, автор естественных наук, когда учеба, после экспедиции на Эверест, когда проект. Это стихотворение когда-то сочинялось, фортепианный концерт, лирика Фан Руиды) Стоя на вершине земли С видом на солнце, растущее на Востоке Малиновые малиновые белые облака Бесконечный поток гор и рек Золотой золотой мир Яркий жемчуг великолепный блеск Независимо от горизонта Независимо от четырех континентов Мир полон солнечного света. Стоя на вершине луны С видом на солнце, растущее на Востоке Малиновые облака светлых облаков Спящие горы тихо проходят мимо реки Земля золотой земли не возвращена Бесконечные сокровища мигающие флуоресценции Красивые и богатые на море Похоже на бушующие волны моря Корабль закреплен. Стоя на вершине Марса С видом на солнце, растущее на Востоке Олимпийский факел бушует Огонь вылетает из сундука Огромные равнины каньона Люди встречают завтрашнюю славу Красивые и богатые небеса Бог свободы пел Безграничный горизонт, звезды, галактика, новорожденное солнце ग्रह के शीर्ष पर स्थित (फेंग रुइदा) ************************************************** (फेन्रुइइडा कविता 2002 में एंडिस में, अमेज़ॅन नदी, अध्ययन द्वारा बनाई गई प्राकृतिक विज्ञान के लेखक, एवरेस्ट अभियान के बाद एक बार कविता लिखी, पियानो कॉन्सर्टो, फेंग रुइया द्वारा निर्मित गीत) पृथ्वी के शीर्ष पर खड़े हो रहे हैं पूर्व में सूर्य की तरफ बढ़ना क्रिमसन क्रिमसन सफेद बादल पहाड़ों और नदियों का अंतहीन प्रवाह स्वर्ण पृथ्वी स्वर्ण दुनिया उज्ज्वल मोती भव्य चमक क्षितिज के बावजूद चार महाद्वीपों के बावजूद दुनिया धूप से भरा है । । । । चंद्रमा के ऊपर खड़े हो रहे हैं पूर्व में सूर्य की तरफ बढ़ना हल्की बादलों के क्रिमसन बादल के मामले में चुपचाप वाले पहाड़ों पर सोते हुए नदी स्वर्ण भूमि की भूमि को पुनः प्राप्त नहीं किया गया है प्रतिदीप्ति चमकती अंतहीन खजाने समुद्र पर सुंदर और अमीर समुद्र के तरंगों को हिलाने लगते हैं एक जहाज लंगर है । । । । । मंगल ग्रह के ऊपर खड़े हो रहे हैं पूर्व में सूर्य की तरफ बढ़ना ओलंपिक मशाल उग्र है आग छाती से बाहर निकलती है घाटी के विशाल मैदान मनुष्य कल की महिमा से मिलते हैं सुंदर और समृद्ध स्वर्ग स्वतंत्रता का देवता गा रहा है बाउंडलेस क्षितिज, सितारों, आकाशगंगा, नवजात सूरज يقف على قمة الكوكب (فانغ رويدا) ************************************************** (فانغرويدا الشعر في عام 2002 في جبال الأنديز، نهر الأمازون، ومؤلف العلوم الطبيعية عندما الدراسة، وبعد رحلة ايفرست عندما مشروع .This قصيدة مرة واحدة يؤلف، كونشيرتو البيانو، كلمات فانغ رويدا خلق) يقف على قمة الأرض تطل على الشمس في الشرق قرمزي، قرمزي، أبيض، السحب تيار لا نهاية لها من الجبال والأنهار الأرض الذهبية العالم الذهبي لؤلؤة مشرقة بريق رائع بغض النظر عن الأفق بغض النظر عن القارات الأربع العالم مليء أشعة الشمس. يقف على قمة القمر تطل على الشمس في الشرق السحب، بسبب، أضاء، كلودس الجبال النائمة تمر بهدوء النهر أرض الأرض الذهبية ليست مستصلحة الكنوز التي لا نهاية لها وميض مضان جميلة وغنية على البحر ويبدو أن ارتفاع تهز موجات البحر وترتكز السفينة. يقف على قمة المريخ تطل على الشمس في الشرق الشعلة الاولمبية مستعرة النار يطير من الصدر السهول الشاسعة من الوادي يجتمع البشر مجد الغد جميلة وغنية السماء إله الحرية هو الغناء بوندليس، الأفق، النجوم، المجرة، الوليد، شمس De pie en la parte superior del planeta (Fang Ruida) ************************************************** (Fangruida poesía en 2002 en los Andes, el río Amazonas, el autor de las ciencias naturales cuando el estudio, después de la expedición del Everest cuando el proyecto. Este poema una vez componer, concerto de piano, letras de Fang Ruida creado) De pie sobre la tierra Con vistas al sol que se levanta en el este Crimson carmesí nubes blancas El flujo interminable de montañas y ríos Tierra de oro mundo de oro Lustre brillante de la perla brillante Independientemente del horizonte Independientemente de los cuatro continentes El mundo está lleno de sol. De pie sobre la luna Con vistas al sol que se levanta en el este Nubes carmesí de nubes ligeras Dormir montañas tranquilamente pasando río La tierra de la tierra de oro no es recuperada Infinitos tesoros que parpadean fluorescencia Hermoso y rico en el mar Parece que se agitan las olas del mar Un barco está anclado. De pie en la parte superior de Marte Con vistas al sol que se levanta en el este La antorcha olímpica está furiosa El fuego vuela fuera del pecho Las vastas llanuras del cañón Los seres humanos se encuentran con la gloria de mañana Hermoso y rico cielo El dios de la libertad está cantando Horizonte sin límites, estrellas, galaxia, sol recién nacido Stehend auf dem Planeten (Fang Ruida) ************************************************** (Fangruida-Poesie im Jahr 2002 in den Anden, der Amazonas-Fluss, der Autor der Naturwissenschaften, wenn die Studie, nach der Everest-Expedition, wenn der Entwurf. Dieses Gedicht einmal komponiert, Klavierkonzert, lyrics von Fang Ruida erstellt) Stehend auf der Erde Mit Blick auf die Sonne im Osten steigen Crimson crimson weiße Wolken Der endlose Strom von Bergen und Flüssen Goldene Welt goldene Welt Helle Perle wunderschönen Glanz Unabhängig vom Horizont Unabhängig von den vier Kontinenten Die Welt ist voller Sonnenschein. Stehend auf dem Mond Mit Blick auf die Sonne im Osten steigen Crimson Wolken der hellen Wolken Schlafende Berge ruhig vorbei am Fluss Das Land des goldenen Landes wird nicht zurückgefordert Endlose Schätze blitzende Fluoreszenz Schön und reich am Meer Scheint zu wachsenden Schütteln Meer Wellen Ein Schiff ist verankert. Stehend auf dem Mars Mit Blick auf die Sonne im Osten steigen Die olympische Fackel wütet Das Feuer fliegt aus der Brust Die weiten Ebenen der Schlucht Die Menschen treffen sich der Ruhm von morgen Schöner und reicher Himmel Der Gott der Freiheit singt Grenzenlose Skyline, Sterne, Galaxie, Neugeborene 惑星の上に立って(牙Ruida) *************************************************** (2002年にはアンデス、アマゾン川のFangruida詩、エベレストの遠征の後、自然科学の著者、草案がドラフトされた後、ピアノ協奏曲、Fang Ruidaの作詞) 地球の上に立って 東に上がる太陽を見下ろす クリムゾン・クリムゾン・ホワイト・クラウド 山と川の無限の流れ ゴールデンアースゴールデンワールド ブライトパールゴージャスな光沢 地平線に関係なく 4つの大陸にかかわらず 世界は太陽がいっぱいです。 月の上に立つ 東に上がる太陽を見下ろす 光の雲の紅雲 静かに川を渡る眠っている山々 黄金の国の土地は再利用されない 蛍光を点滅させる無限の宝物 美しく豊かな海 波を揺さぶるように見える 船は固定されています。 火星の上に立つ 東に上がる太陽を見下ろす オリンピックの聖火は激怒している 火が胸の外に飛ぶ 峡谷の広大な平原 人間は明日の栄光を満たす 美しく豊かな天 自由の神が歌います 無限のスカイライン、星、銀河、新生児の太陽 ln38nksc1t59uifyvxrt3wzemzlncf0 User:Estela.rs/sandbox 2 370672 4668287 3073614 2026-09-03T13:24:38Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668287 wikitext text/x-wiki Famous classic meta----- Fangruida <code>text</code> World famous famous quotes compiled Fangruida Collection -- https://archive.org/details [[https://en.wikiversity.org/wiki/User_talk:Fersts/Fangruida]] --The world's most precious of precious things, nothing more than life, wealth, language, "the human soul." The biggest difference between humans and animals is also here. There are many great books of wisdom highlights the human soul and language in the world. Regardless of scientific theorems or literary masterpiece, it is true. Bible, the Book of Songs, is proof. Seen in this light, the great influence of language and great charm lies. In fact, the human legacy of treasures, including heritage, relics, wills, posthumous, last words, ruins, portrait. . . . . And so on, the language is extremely valuable. Extraordinary value. Especially famous celebrities, it is the most valuable one of the world's cultural heritage, spread the world, enduring, eternal charm. According to the concept, the collection and. quiet nature so beautiful, as if the goddess floating in now if reflected if fairy-tale world where human society is soaked in broad demure nature of a particle, though in her whole body from time to time sprinkled bright, shadow or other mixed dust, However, she is always smiling, very lovely. Although beautiful and colorful life, but after all, not painting dance. Day and night, day and night labor, and job creation. Live in a world of architecture is so true resurrection. Nature assimilation and alienation delivery were often the same, the human world of human society there are often each other's delivery, alienation in assimilation, assimilation alienation. From nebula to particles from biological to humans, it has been true. World History is always constant ups and downs like the sea waves wild waves, surging, but sometimes calm, to human society pains, joy and warmth. A man of narrow, selfish and arrogant enough to destroy their own bright future; and a group of people of a nation fanaticism and selfishness, will bring shadow and haze to the whole world. Every step in life is not so much mountain climbing, it is more attached to the wall climbing. Because life is hard indeed need, regardless of wealth mediocre, even the most peaceful life there will be ups and downs. In science the way to pay the more you get, the less it is in real life, the pinnacle of glory, the more things get less pay. Several hundred thousands of years for the average person is very ordinary, natural scientist and explorer for it, this is just a brief moment. Tens of millions of years of natural science is the cardinality confirmed, otherwise, then great theories and hypotheses will lose aura. The world is so small, crowded too many people, the planet will collide with each other. Not to mention it among the world's human and ethnic barriers and battle each other up in this most basic rules of play in the green, not sweetness and light, only continue to impact collision, only gradual integration dissolved. Natural scientists explain and elaborate history, at best, merely human history as a force of nature and subsidiary; sociologists tend to put all the history of human society and human portrayal of the world's remaining adult class supernatural powers. In the field, in the hills, in the steppe, in the harbor, so serene nature, day after day, repeat the natural beauty of the movement. For thousands of years always say, people continue to create history and innovation. However, the cornerstone of human history, and not only simply great and great fighting force, first and foremost the development of various elements based on history. Leading world history guide requires strength, progressive and ocean of wisdom. Human nature and natural necessity primitive animal instincts of convergence, but this is not to say that human nature is always only original throwback, on the contrary, a long natural history category was able to evolution and transformation, including the nature of society long historical process natural process. Mortal beings, the whole world is full of flowers Grass. Like in the natural world, colorful, blooming thrive. Hundreds of millions of lives, the blooming of all the world. If there is no human life, nature will be flowers, colorful, but only humans, high intelligent life exists throughout the world and the natural world that has the extraordinary significance without which everything would become meaningless wonderful. Nature is great indeed and very beautiful, ten thousand trillion human generations and promote the continuation of the whole planet, and history. In this long and surging world, igniting each other every moment of passion and hope, and every moment is full of strife and struggle with each other ..... thus creating a wide variety of brilliant victory, defeat and death. this is the millions of years of biological interpretation and survival of the world's natural history and wisdom to create animals and the whole history of the world to change. of course, no human history and played all created, regardless of the natural world and the world better or ugly, brilliant or dark, or continue to perish, that have no rational sense. Rebuilding expect natural universe a world, expect God reproducing a human, it is entirely realistic and survival of the planet and human wisdom is ideal for creating very different. World opened a new page every day, nature and the universe are also refreshed daily calendar, because whether human or cosmic, no moment is not a natural one second change. Only true human liberation from the world of nature and society out of history to produce a breakthrough and leap. Wisdom, reason, mettle and talent is the dawn of the human world of learning, labor and education is this world towards a new dawn ladder. In the world of the garden, there is more than butterflies fly, fragrant overflowing, there are birds contention, slowly away; the same time, there are flow-winged insects, Weng Weng flutter fly nature really stunning intoxicated. Human family, ethnic map dazzling. In fact, in real life most common ordinary family is a vivid manifestation of the human genome. Illustrious holy family, after all, is a fraction, the general public is indeed family everywhere. This is human the world's most realistic images. so, whether to create any glorious history, it will inevitably print these genetic map images and new image mark. People often think that wealth can create everything. In fact, human life can be stacked wealth wealthy rich paradise, but wealth is not absolute and can be changed to enhance the human mind. To change and improve the human soul fundamentally still need spiritual baptism of course, this is not just baptism and nurtured learning and enlightenment, more importantly, practice words and deeds in constant transformation and change the whole nature and society, such as the ability to transform and change and change and improve. The head of world history and no ready-made images and beautiful scenery, only the courage to forge ahead in order to obtain a hint of a ho wonderful and successful. In other words, traction and promote human history and world history, the lack of extraordinary courage, wisdom, strength tantamount to Manic fever or whimsical. Natural history's greatest air force and elusive, not only in constant change or forever changing the whole nature, same time, it is brutally powerful way inexorably changing the lives of human beings, including him and depend on environmental and social survival this is the natural history and human history of the most vivid descriptions. naturally, highly intelligent life of these will have some force under a reaction force, which can only be advanced from the animal life and the creation of high-quality intelligence to understand. Repeated every day life, history repeats itself daily also. Geese flew over the ground through the flock, the birds in a graceful jump, the fish in the stream wandering the fields, the earth a golden ..... natural beauty, quiet, seems to silently wake sleeping earth , agitation from the overflowing vitality of life and high energy ..... everything indicates that the movement of natural harmony, life. Earth, vast boundless wilderness, winding mountains, green grassland, capped peaks, everything is beautiful and is now reflected in the painting. Earth beautiful scenery, dotted with beautiful planet in the quiet and spectacular ..... moon, Mars in diverse, more beautiful and more beautiful scenery, far beyond human imagination. If history is no end, only to say natural history forever and independent of human history, and a brief history of mankind there is torn between the end and the half ended. Spectacular Milky Way, far more than the Earth, the Moon and Mars, Jupiter, if humanity as the Earth, Moon, Mars, as a dip, like a stroll into the Milky Way galaxy, the Milky Way objects, though very great splendor, however, is still insignificant, because, even if the Galaxy is only a tiny little bit of the universe. Moon and stars, the rivers of the earth, again and again, students live interest, interpretation of the whole human world. Only nature can last forever, no matter how dangerous the fear of the future and the past. Only the nature of life and interdependence can only reasonably survive in the meantime, life has not intermittent, life may be accompanied by only minimal exist in nature. for nature, the presence or absence of life or advanced intelligent life, which exist with nature's own evolution is not a shred of relevance. this is the most famous survival principles of natural philosophy. A leaf, more than one flower, a grass, a spike Barley, a drop of water, a soil, a ray of sunshine. . . . . . A little air in the world, always smiling, because they and countless lives as bright and colorful. Not only pregnant with the natural world, but also pregnant with life and humanity. Their greatest and most glorious in the fact that they are rooted in the natural world, it is one of nature's most valuable for the existence of primitive life. On Earth it seems commonplace, surprising, and in the distant planet, the world, indeed the greatest and most difficult to find the most dazzling pearl treasures. Life is the most precious time, the most brilliant of wealth, is to create the most happiness, the greatest wisdom. Saddest life is lazy, the most painful disease, ignorance is the most stupid, most failed is flinched - insane and aggressive. The world is not aggressive, it will never be overshadowed brilliant; there is no progress in life, as sad as lost souls. White clouds floating in the sky forever, it symbolizes the great natural pure pride; never open the earth with flowers, it shows the great human colorful. Intelligent people can fail as succeed. Everything in the world will not last forever, only the bottom of the language of the soul will be forever immortal. Hardships and adversities in life struggle of great wealth. People often talks about fashionable rhetoric, not knowing that justice is not fashionable, and those languages ​​are often forgotten and despised by the world is full of gold is precisely the truth, though it often does not Phi Dai Huali coat. Shallow people do not always big, only a deep one can make a difference. Both world beauty, and like chaos, this is the real world. Science and truth will always be the ultimate winner, although he is often defeated by evil and absurd. Evil and absurdity can be rampant, but in the end can not last long. In the history of the world before the broad avenue, Crossroads: go left, probably all the way flat; right away, it may be dangerous way; to walk in, you may be standing still, dull, and back it means death. World history and create a victory marching, never belong to timid people and the wisdom of shallow mediocrity. The waves of the sea lap against the shore cliffs, overlooking the sea, wading beach, you should spray touching, kissing the sea, this blue ocean, boundless natural world and the human world the true meaning and hope. 、calme nature si belle, comme si la déesse flottante maintenant si réfléchi si conte monde où la société humaine est trempé dans une large nature modeste d'une particule, mais dans tout son corps de temps en temps saupoudré lumineux, ombre ou autre poussière mixte, Cependant, elle est toujours souriant, très belle. Bien que belle et colorée la vie, mais après tout, pas la peinture danse. Jour et nuit, jour et nuit le travail et la création d'emplois. Vivre dans un monde de l'architecture est si vrai résurrection. Nature assimilation et la livraison de l'aliénation sont souvent les mêmes, le monde humain de la société humaine, il y a souvent la livraison de l'autre, l'aliénation dans l'assimilation, l'assimilation de l'aliénation. De nébuleuse aux particules biologiques ou humains, il a été vrai. Histoire du monde est toujours des hauts et des bas constants comme les vagues de la mer des vagues sauvages, la flambée, mais parfois calme, à des douleurs de la société humaine, la joie et la chaleur. Un homme d'étroit, égoïste et suffisante pour détruire leur propre avenir arrogante; groupe et une des personnes d'un fanatisme de la nation et de l'égoïsme, apportera l'ombre et la brume dans le monde entier. Chaque étape de la vie est non pas tant de l'alpinisme, il est plus attaché à l'escalade sur mur. Parce que la vie est difficile en effet besoin, indépendamment de la richesse médiocre, même la vie plus paisible, il y aura des hauts et des bas. Dans la science de la façon de payer plus que vous obtenez, moins il est dans la vie réelle, l'apogée de la gloire, plus les choses deviennent un salaire moindre. Plusieurs centaines de milliers d'années pour la personne moyenne est très ordinaire, naturaliste et explorateur pour elle, ceci est juste un bref moment. Des dizaines de millions d'années de sciences naturelles est la cardinalité confirmée, sinon, puis une grande théories et hypothèses vont perdre l'aura. Le monde est si petit, bondé trop de gens, la planète va entrer en collision les uns avec les autres. Sans compter parmi les barrières humaines et ethniques du monde et combattre les uns les autres dans ces règles les plus élémentaires du jeu dans le vert, pas de douceur et de lumière, seulement continuer d'avoir un impact collision, seulement une intégration progressive dissous. Les savants expliquent et précisent l'histoire, au mieux, l'histoire purement humaine comme une force de la nature et de la filiale, les sociologues ont tendance à mettre toute l'histoire de la société humaine et à la représentation humaine de rester classe adulte pouvoirs surnaturels du monde. Sur le terrain, dans les collines, dans la steppe, dans le port, la nature si sereine, jour après jour, répéter la beauté naturelle du mouvement. Pendant des milliers d'années disent toujours, les gens continuent de créer l'histoire et de l'innovation. Cependant, la pierre angulaire de l'histoire humaine, et non seulement la force tout simplement génial et un grand combat, avant tout le développement de divers éléments en fonction de l'histoire. Leading guide de l'histoire du monde exige de la force, progressive et l'océan de la sagesse. la nature humaine et la nécessité naturelle animale primitive instincts de convergence, mais cela ne veut pas dire que la nature humaine est toujours seulement throwback original, au contraire, une longue catégorie d'histoire naturelle a pu évolution et la transformation, y compris la nature de la société long processus historique de processus naturel. êtres mortels, tout le monde est plein de fleurs Grass. Comme dans le monde naturel, coloré, la floraison se développent. Des centaines de millions de vies, l'épanouissement de tout le monde. S'il n'y a pas de vie humaine, la nature sera fleurs, coloré, mais seulement les humains, hauts la vie intelligente existe dans le monde et le monde naturel qui a une importance extraordinaire, sans laquelle tout serait perdu son sens merveilleux. La nature est très bien et très beau, dix mille milliards de générations humaines et promouvoir la poursuite de toute la planète, et de l'histoire. Dans ce monde longue et houleuse, allumer l'autre à chaque instant de passion et d'espoir, et à chaque instant est plein de conflits et de la lutte avec l'autre ..... créant ainsi une grande variété de brillante victoire, la défaite et la mort. ce sont les millions d'années d'interprétation biologique et à la survie de l'histoire naturelle du monde et de la sagesse pour créer des animaux et toute l'histoire du monde à changer. Bien sûr, pas d'histoire humaine et a joué tout créé, quel que soit le monde naturel et le monde meilleur ou laid, brillant ou sombre, ou de continuer à périr, qui ont aucun sens rationnel. Reconstruire attendre univers naturel un monde, attendez Dieu reproduire un être humain, il est tout à fait réaliste et à la survie de la planète et la sagesse humaine est idéal pour créer très différent. World a ouvert une nouvelle page chaque jour, la nature et l'univers sont également rafraîchi calendrier quotidien, parce que quel que soit l'homme ou de l'univers, pas une heure une seconde est pas changé naturellement. Seule vraie libération de l'homme du monde de la nature et de la société sur l'histoire pour produire une percée et sauter. Sagesse, la raison, courage et le talent est l'aube du monde humain de l'apprentissage, le travail et l'éducation est ce monde vers une nouvelle échelle de l'aube. Dans le monde du jardin, il y a plus de papillons volent, débordant parfumé, il y a des oiseaux discorde, lentement, en même temps, il y a des insectes d'écoulement à ailes, Weng Weng mouche flutter nature vraiment superbe état d'ébriété. famille humaine, carte ethnique éblouissante. En fait, dans la vie réelle famille ordinaire le plus commun est une manifestation vivante du génome humain. Illustre sainte famille, après tout, est une fraction, le grand public est en effet la famille partout. Ce qui est humain images les plus réalistes du monde. donc, que ce soit pour créer toute l'histoire glorieuse, elle va inévitablement imprimer ces images de cartes génétiques et nouvelle image marque. Les gens pensent souvent que la richesse peut créer tout. En fait, la vie humaine peut être empilé la richesse de paradis riche riche, mais la richesse ne sont pas absolus et peuvent être modifiés pour améliorer l'esprit humain. Pour modifier et d'améliorer l'âme humaine fondamentalement encore besoin spirituel baptême bien sûr, cela est non seulement le baptême et nourri l'apprentissage et de l'illumination, plus important encore, les mots de la pratique et les actes en constante transformation et changer toute la nature et de la société, tels que la capacité de transformer et de changer et de modifier et d'améliorer. Le chef de l'histoire du monde et aucune image ready-made et de beaux paysages, seul le courage d'aller de l'avant afin d'obtenir un indice d'une merveilleuse ho et réussie. En d'autres termes, la traction et la promotion de l'histoire humaine et l'histoire du monde, le manque de courage extraordinaire, la sagesse, la force équivaut à fièvre Manic ou fantaisiste. la plus grande force de l'air de l'histoire naturelle et insaisissable, non seulement dans le changement constant ou changeant à jamais toute la nature, en même temps, il est brutalement puissant moyen de changer inexorablement la vie des êtres humains, y compris lui et dépendent de la survie sociale et environnementale ceci est l'histoire naturelle et l'histoire humaine des descriptions les plus vives. naturellement, la vie très intelligent de ceux-ci ont une certaine force sous une force de réaction, qui ne peut être avancée de la vie animale et la création de l'intelligence de haute qualité à comprendre. Répétée la vie quotidienne, l'histoire se répète tous les jours aussi. Oies a survolé le sol à travers le troupeau, les oiseaux dans un saut gracieux, le poisson dans le ruisseau errant dans les champs, la terre d'un or ..... beauté naturelle, calme, semble se réveiller silencieusement terre dormir , l'agitation de la vitalité débordante de vie et de haute énergie ..... tout indique que le mouvement de l'harmonie naturelle, la vie. Terre, vaste désert sans limites, les montagnes, les prairies vertes, sommets enneigés enroulement, tout est beau et se retrouve désormais dans la peinture. Terre beau paysage, parsemé de belle planète dans le calme et spectaculaire ..... lune, Mars dans diverse, plus belle et plus beau paysage, bien au-delà l'imagination humaine. Si l'histoire est sans fin, seulement pour dire l'histoire naturelle pour toujours et indépendante de l'histoire humaine, et une brève histoire de l'humanité, il est déchiré entre la fin et le semestre clos. Spectaculaire Voie Lactée, bien plus que la Terre, la Lune et Mars, Jupiter, si l'humanité comme la Terre, la Lune, Mars, comme trempette, comme une promenade dans la galaxie de la Voie lactée, les objets de la Voie Lactée, bien que très grande splendeur, cependant, est encore insignifiant, parce que, même si le Galaxy est seulement un petit peu de l'univers. Lune et les étoiles, les rivières de la terre, encore et encore, les étudiants vivent intérêt, l'interprétation de tout le monde humain. Seule la nature peut durer éternellement, peu importe le danger de la peur de l'avenir et le passé. Seule la nature de la vie et de l'interdépendance ne peut raisonnablement survivre dans le temps, la vie a pas intermittente, la vie peut être accompagné que par un minimum existent dans la nature. de la nature, la présence ou l'absence de la vie ou la vie intelligente avancée qui existe avec sa propre évolution de la nature ne sont pas la moindre pertinence. c'est le plus célèbre principes de survie de la philosophie naturelle. Une feuille, plus d'une fleur, une herbe, un pic d'orge, une goutte d'eau, un sol, un rayon de soleil. . . . . . Un peu d'air dans le monde, toujours souriant, parce qu'ils et d'innombrables vies lumineux et coloré. Non seulement enceinte avec le monde naturel, mais aussi enceinte de la vie et de l'humanité. Leur plus grand et le plus glorieux dans le fait qu'elles sont enracinées dans le monde naturel, il est l'un des plus précieux pour l'existence de la vie primitive nature. Sur Terre, il semble banal, surprenant, et dans la lointaine planète, le monde, en effet le plus grand et le plus difficile de trouver des trésors les perles les plus éblouissants. La vie est le temps le plus précieux, le plus brillant de la richesse, est de créer le plus de bonheur, la plus grande sagesse. Saddest vie est paresseux, la maladie la plus douloureuse, l'ignorance est le plus stupide, le plus échoué est sourcillé - fou et agressif. Le monde est pas agressif, il ne sera jamais éclipsé brillante, il n'y a pas de progrès dans la vie, aussi triste que les âmes perdues. Des nuages ​​blancs flottant dans le ciel pour toujours, il symbolise la fierté naturelle pure, ne jamais ouvrir la terre avec des fleurs, il montre le grand coloré humain. Les gens intelligents peuvent échouer comme réussir. Tout dans le monde ne durera pas éternellement, seul le fond de la langue de l'âme sera toujours immortelle. Les difficultés et les adversités de la vie lutte d'une grande richesse. Les gens parle souvent de la rhétorique à la mode, ne sachant pas que la justice est pas à la mode, et ces langues sont souvent oubliés et méprisés par le monde est plein d'or est précisément la vérité, même si elle le fait souvent pas manteau Phi Dai Huali. personnes peu profondes ne sont pas toujours grande, seule une profonde on peut pas faire une différence. Tant la beauté du monde, et comme le chaos, cela est le monde réel. La science et la vérité sera toujours le vainqueur final, bien qu'il est souvent vaincu par le mal et absurde. Mal et l'absurdité peut être généralisée, mais à la fin ne peut pas durer longtemps. Dans l'histoire du monde avant la large avenue, Crossroads: aller à gauche, probablement tout le chemin plat, tout de suite, il peut être de manière dangereuse, de marcher, vous pouvez être debout encore, terne, et le dos, cela signifie la mort. L'histoire du monde et de créer une marche de la victoire, jamais appartiennent aux gens timides et la sagesse de la médiocrité peu profonde. Les vagues de la nappe de la mer contre les falaises côtières, avec vue sur la mer, pataugeant plage, vous devez pulvériser toucher, embrasser la mer, cet océan bleu, monde naturel sans limite et le monde humain le vrai sens et l'espoir. тихий природа так красиво, как будто богиня плавает в теперь, если отражение, если сказочный мир, где человеческое общество замачивают в широком тихоня природе частицы, хотя в целом ее тело время от времени посыпать яркие, тени и другие смешанные пыли, Тем не менее, она всегда улыбается, очень мило. Несмотря на то, красивой и яркой жизни, но в конце концов, не живопись танец. День и ночь, день и ночь труда, а также создание новых рабочих мест. Жить в мире архитектуры настолько верно воскресение. Природа ассимиляции и доставки отчуждение часто то же самое, человеческий мир человеческого общества часто есть доставка друг друга, отчуждение в ассимиляции, ассимиляция отчуждение. От туманности частиц от биологических людей, это было правдой. Всемирная история всегда постоянные взлеты и падения, как морские волны диких волн, помпаж, но иногда спокойствие, боли в человеческом обществе, радости и тепла. Человек узкой, эгоистичной и достаточно, чтобы уничтожить их собственное светлое будущее высокомерным, и группы людей, нации фанатизмом и эгоизмом, принесет тень и матовость на весь мир. Каждый шаг в жизни не столько альпинизм, она больше привязывался к скалодром. Потому что жизнь трудно на самом деле нужно, независимо от богатства посредственным, даже самая мирная жизнь там будет взлеты и падения. В науке способ платить тем больше вы получаете, тем меньше она в реальной жизни, вершина славы, тем больше вещей получают меньшую заработную плату. Несколько сотен тысяч лет для среднего человека очень обычный, натуральный ученый и исследователь для него, это всего лишь краткий миг. Десятки миллионов лет естественной науки является кардинальное подтверждается, в противном случае, то большая теории и гипотезы потеряет ауру. Мир настолько мал, переполненном слишком много людей, планета будет сталкиваться друг с другом. Не говоря уже о его среди мировых людских и этнических барьеров и сражаться друг с другом в этом самых основных правил игры в зеленом, а не сладости и света, только продолжать оказывать воздействие столкновения, только постепенной интеграции растворится. Природные ученые объясняют и разработать историю, в лучшем случае, просто человеческую историю как сила природы и дочерней компании, социологи склонны возлагать всю историю человеческого общества и человека изображением сверхъестественных сил оставшихся в мире взрослого класса. В поле, в горах, в степи, в гавани, так безмятежной природы, день за днем, повторить естественную красоту движения. На протяжении тысяч лет всегда говорят, люди продолжают создавать историю и инноваций. Тем не менее, краеугольным камнем в истории человечества, а не только просто здорово и большой боевой силой, в первую очередь, развитие различных элементов, основанных на истории. Ведущий мировой истории руководство требует силы, прогрессивный и океан мудрости. Человеческая природа и естественная необходимость примитивно животных инстинктов сходимости, но это не означает, что человеческая природа всегда только оригинальные атавизмом, наоборот, длинная естественная категория история была в состоянии эволюции и трансформации, в том числе характер общества длительный исторический процесс естественный процесс. Смертоносные существа, весь мир полон цветов травы. Как и в естественном мире, красочный, цветущий процветать. Сотни миллионов жизней, цветущий всего мира. Если нет человеческой жизни, природа будет цветы, красочные, но только люди, высокие разумная жизнь существует во всем мире и природного мира, который имеет исключительное значение, без которого все становится бессмысленным замечательно. Природа действительно велика и очень красивая, десять тысяч триллионов человеческих поколений и способствовать продолжению всей планеты, и истории. В этой долгой и помпажа мире, зажигая друг друга каждый момент страсти и надежды, и каждый момент полна борьбы и борьбы друг с другом ..... создавая тем самым широкий спектр блестящей победы, поражения и смерти. это миллионы лет биологической интерпретации и выживания естественной истории мира и мудрости, чтобы создать животных и вся история мира не изменится. Конечно, ни истории человечества и играл все созданные, независимо от естественного мира, и мир лучше или некрасиво, блестящий или темный, или погибает, которые не имеют никакого рационального смысла. Перестроение ожидать естественной вселенной мир, Бог ожидает воспроизведения человека, это вполне реально и выживание планеты и человеческая мудрость идеально подходит для создания очень разные. Мир открыл новую страницу каждый день, природа и вселенная также обновляется ежедневный календарь, потому что независимо от человека или Вселенной, не 1:00 одна секунда не естественно, не изменится. Только истинная освобождение человека от мира природы и общества из истории, чтобы произвести прорыв и прыжок. Мудрость, разум, характер и талант на заре человеческого мира обучения, труда и образования этот мир к новой зари лестнице. В мире сада, есть больше, чем бабочки летают, душистый перетекание, есть птицы, раздор, медленно прочь, в то же время, есть поток крылатых насекомых, Вэн Вэн флаттера летать природа действительно потрясающий в состоянии алкогольного опьянения. Человеческой семьи, этническая карта ослепительной. На самом деле, в реальной жизни наиболее распространенной обычная семья является ярким проявлением человеческого генома. Прославленный Святое семейство, в конце концов, это фракция, широкая общественность действительно семья во всем мире. Это человек наиболее реалистичные изображения в мире. таким образом, следует ли создавать какие-либо славной истории, она неизбежно печатать эти генетические карты и изображения нового знака изображения. Люди часто думают, что богатство может создать все. На самом деле, человеческая жизнь может быть сложены богатство богатым богатый рай, но богатство не является абсолютным и может быть изменен для улучшения человеческого ума. Чтобы изменить и улучшить человеческую душу в корне по-прежнему нуждаются в духовной крещение, конечно, это не только крещение и лелеяли обучение и просвещение, что более важно, практика слова и дела в постоянной трансформации и изменить всю природу и общество, такие как способность преобразовывать и изменять и изменить и улучшить. Глава всемирной истории и без каких-либо готовых образов и красивых пейзажей, только мужество, чтобы продвигаться вперед, чтобы получить подсказку хо замечательный и успешным. Другими словами, тяги и продвигать историю человечества и мировой истории, отсутствие необычайной храбрости, мудрости, силы равносильно Маниакально лихорадка или капризным. Наибольшее усилие воздуха естественной истории и неуловимым, а не только в постоянном изменении или навсегда изменив всю природу, то же самое время, это жестоко мощный способ неумолимо меняет жизнь человека, в том числе его и зависят от окружающей среды и социального выживания это естественная история и человеческая история из наиболее ярких описаний. естественно, весьма разумная жизнь из них будет иметь некоторую силу в соответствии с реакционной силой, которая может быть выдвинутой только из жизни животных и создание высококачественного интеллекта, чтобы понять. Повторные каждый день жизни, история повторяется также ежедневно. Гуси летели над землей через стадо, птиц в изящном прыжке, рыбу в потоке блуждающих полей, землю золотой ..... естественная красота, тишина, кажется, тихо пробуждаться спать землю , возбуждение от переполненной жизнеспособность жизни и высокой энергии ..... все указывает на то, что движение естественной гармонии, жизни. Земля, огромная безграничная пустыня, извилистые горы, зеленые луга, пиками, все красиво и теперь отражена в картине. Земли красивые пейзажи, пунктир с прекрасной планеты в тишине и зрелищным ..... луна, Марс в разнообразной, более красивой и более красивыми пейзажами, далеко за пределами человеческого воображения. Если история не будет конца, только сказать, естественной истории навсегда и не зависит от человеческой истории, и краткая история человечества есть разрывается между концом и тайм окончен. Захватывающий Млечный Путь, гораздо больше, чем у Земли, Луны и Марса, Юпитера, если человечество Земли, Луны, Марса, как падение, как прогулка в галактике Млечный Путь, объекты Млечного Пути, хотя и очень большой пышностью, однако, все еще является незначительным, потому что, даже если Galaxy это лишь малая немного вселенной. Луна и звезды, реки земли, снова и снова, студенты живут интерес, интерпретация всего человеческого мира. Только природа не может длиться вечно, независимо от того, насколько опасны страх перед будущим и прошлым. Только природа жизни и взаимозависимости может только разумно выжить в то же время, жизнь не прерывистый, жизнь может сопровождаться только минимальным существует в природе. для природы, наличие или отсутствие жизни или передовой разумной жизни, которая существует с собственной эволюции природы не является крупицы релевантности. это самый известный принципы выживания естественной философии. Лист, больше чем один цветок, трава, шип Ячмень, капля воды, почва, луч солнца. , , , , , Немного воздуха в мире, всегда улыбаются, потому что они и бесчисленное количество жизней, как яркий и красочный. Не только беременные с миром природы, но и чреваты жизни и человечества. Их самый большой и самый славный в том, что они коренятся в естественном мире, это один из природы наиболее ценным для существования примитивной жизни. На Земле это кажется обычным делом, удивление, и в далекой планете, мир, на самом деле самый большой и самый трудный, чтобы найти самые ослепительные жемчужные сокровища. Жизнь это самое ценное время, самый блестящий богатства, чтобы создать наиболее счастье, величайшая мудрость. Грустная жизнь ленивым, самое болезненное заболевание, невежество самый глупый, самый не удалось это вздрогнула - с ума и агрессивным. Мир не агрессивный, он никогда не будет омрачено блестящим, нет никакого прогресса в жизни, так грустно, как потерянные души. Белые облака, плавающие в небе навсегда, он символизирует большую чистую природную гордость, никогда не открывайте землю с цветами, это показывает большой человек красочный. Интеллектуальные люди могут не в качестве успеха. Все в мире не будет длиться вечно, только в нижней части языка души будет вечно бессмертными. Тяготы и невзгоды в жизни борьбе большого богатства. Люди часто говорят о модной риторикой, не зная, что справедливость не модно, и те языки, которые часто забывают и презираемый мир полон золота именно истина, хотя она часто не Фи Dai Хуали пальто. Мелкие люди не всегда большой, только глубокий можно сделать разницу. И мир красоты, и, как хаос, это реальный мир. Наука и истина всегда будет окончательным победителем, хотя он часто побежден злом и абсурдным. Зло и нелепость может быть безудержной, но в конце концов не может длиться долго. В истории мира перед широкой аллеи, Перекресток: идите налево, вероятно, все пути плоской, сразу же, это может быть опасным способом, чтобы ходить, вы можете стоять на месте, тусклый, и обратно это означает смерть. Мировая история и создать победы маршируют, никогда не принадлежат робких людей, и мудрость мелкой посредственности. Волны моря коленях против берега скалы, с видом на море, пробираясь пляж, вы должны распылять прикосновения, поцелуи на море, этот голубой океан, безграничная мир природы и мир людей истинный смысл и надежду. Jingya Natur so schön, als ob die Göttin in jetzt schwebenden wenn reflektiert, wenn Märchenwelt, wo die menschliche Gesellschaft in weiten sittsam Natur eines Teilchens getränkt ist, wenn auch in ihrem ganzen Körper von Zeit zu Zeit hell bestreut, Schatten oder andere Misch Staub, Doch sie lächelt immer, sehr schön. Obwohl schöne und bunte Leben, aber nach allem, nicht tanzen zu malen. Tag und Nacht, Tag und Nacht arbeiten und die Schaffung von Arbeitsplätzen. Leben in einer Welt der Architektur ist so wahr, Auferstehung. Natur Assimilation und Entfremdung Lieferung waren oft die gleichen sind, die menschliche Welt der menschlichen Gesellschaft gibt es oft einander die Lieferung, Entfremdung in Assimilation Assimilation Entfremdung. Von Nebel, um Partikel aus biologischen für den Menschen ist es wahr gewesen. Weltgeschichte ist immer konstant Höhen und Tiefen wie die Wellen des Meeres wilden Wellen, wogenden, aber manchmal ruhig, die menschliche Gesellschaft Schmerzen, Freude und Wärme. Ein Mann von schmalen, egoistisch und arrogant genug, um ihre eigene Zukunft zu zerstören, und eine Gruppe von Menschen einer Nation Fanatismus und Egoismus, werden Schatten und Dunst in die ganze Welt bringen. Jeder Schritt im Leben ist nicht so viel Bergsteigen, ist es an der Wand befestigt klettern. Denn das Leben ist hart in der Tat brauchen, unabhängig von Reichtum ist mittelmäßig, auch die friedliche Leben gibt es Höhen und Tiefen sein. In der Wissenschaft zu zahlen, die Art und Weise, je mehr Sie bekommen, desto weniger ist es im wirklichen Leben, die Gipfel des Ruhmes, desto mehr Dinge weniger Lohn. Mehrere hundert Tausenden von Jahren für die durchschnittliche Person ist sehr gewöhnlich, Naturwissenschaftler und Entdecker für sie, das ist nur ein kurzer Moment. Zig Millionen von Jahren der Naturwissenschaft ist die Mächtigkeit bestätigt, sonst, so groß Theorien und Hypothesen werden Aura verlieren. Die Welt ist so klein, überfüllt zu viele Menschen, wird der Planet miteinander kollidieren. Nicht sie menschliche und ethnische Barrieren der unter der Welt zu nennen und sich gegenseitig bekämpfen nur in dieser grundlegenden Spielregeln bis in die grüne, nicht Süße und Licht, weiterhin Kollision zu beeinflussen, nur schrittweise Integration gelöst. Naturwissenschaftler erklären und Geschichte erarbeiten, im besten Fall, nur der Geschichte der Menschheit als eine Kraft der Natur und Tochter, Soziologen neigen dazu, alle die Geschichte der menschlichen Gesellschaft und der menschlichen Darstellung der übernatürliche Kräfte übrigen erwachsenen Klasse zu setzen weltweit. Im Bereich, in den Bergen, in der Steppe, im Hafen, so ruhige Natur, Tag für Tag, wiederholen Sie die natürliche Schönheit der Bewegung. Seit Tausenden von Jahren immer sagen, die Menschen weiterhin Geschichte und Innovation zu schaffen. Um jedoch die Eckpfeiler der Geschichte der Menschheit, und nicht nur einfach toll und großen Kampfkraft, in erster Linie die Entwicklung der verschiedenen Elemente auf die Geschichte basiert. Weltgeschichte Führung Führende erfordert Kraft, progressiv und Ozean der Weisheit. Die menschliche Natur und Naturnotwendigkeit primitiven animalischen Instinkte der Konvergenz, aber das ist nicht zu sagen, dass die menschliche Natur ist immer nur original rückschritt, im Gegenteil, eine lange Naturgeschichte Kategorie konnte Evolution und Transformation, einschließlich der Natur der Gesellschaft langen historischen Prozesses natürlicher Prozess. Mortal Wesen, die ganze Welt ist voller Blumen Grass. Wie in der natürlichen Welt, bunt, gedeihen blühen. Hunderte von Millionen von Menschenleben, das Aufblühen der ganzen Welt. Wenn es kein menschliches Leben ist, wird die Natur, Blumen, bunt, sondern nur Menschen, hohe intelligentes Leben existiert in der ganzen Welt und der natürlichen Welt, die die außerordentliche Bedeutung hat, ohne die alles sinnlos wunderbar werden würde. Die Natur ist groß in der Tat und sehr schön, zehntausend Billionen menschlichen Generationen und die Fortsetzung des ganzen Planeten zu fördern, und die Geschichte. In dieser langen und wogende Welt, einander zu zünden jeden Moment der Leidenschaft und Hoffnung, und jeden Augenblick ist voll von Streit und Kampf miteinander ..... somit eine Vielzahl von glänzenden Sieg, Niederlage und Tod zu schaffen. das ist die Millionen von Jahren der biologischen Interpretation und das Überleben der Naturgeschichte und der Weisheit der Welt Tiere zu schaffen und die ganze Geschichte der Welt zu verändern. natürlich keine Geschichte der Menschheit und alle geschaffen gespielt, unabhängig von der natürlichen Welt und die Welt besser oder hässlich, brillant oder zu dunkel, weiterhin zu Grunde gehen, dass keine rationale Sinn haben. Neuaufbau natürliche Universum erwarten eine Welt, erwarten, dass Gott eine menschliche Reproduktion, ist es durchaus realistisch und das Überleben des Planeten und die menschliche Weisheit ist ideal für sehr unterschiedliche zu schaffen. Welt eröffnet eine neue Seite täglich, die Natur und das Universum sind auch täglich Kalender aktualisiert, weil unabhängig von der menschlichen oder das Universum, nicht ein Uhr einer Sekunde nicht natürlich ändern. Nur wahre Befreiung des Menschen aus der Welt der Natur und der Gesellschaft aus der Geschichte, um einen Durchbruch zu produzieren und springen. Weisheit, Vernunft, Mut und Talent ist der Beginn der menschlichen Welt des Lernens, Arbeit und Bildung ist diese Welt in eine neue Morgendämmerung Leiter. In der Welt des Gartens gibt es mehr als Schmetterlinge fliegen, duftend überquellenden, gibt es Vögel Behauptung, langsam weg, zur gleichen Zeit gibt es Fluss geflügelten Insekten, Natur Weng Weng flattern fliegen wirklich atemberaubend berauscht. Menschliche Familie, ethnische Karte blendend. In der Tat, im wirklichen Leben am häufigsten gewöhnliche Familie ist eine lebendige Manifestation des menschlichen Genoms. Illustrious heilige Familie, schließlich ist ein Bruchteil, ist die Öffentlichkeit in der Tat Familie überall. Das ist menschlich die realistischste Bilder der Welt. so, ob jede glorreiche Geschichte zu schaffen, wird es diese genetische Karte Bilder und neue Bildmarke zwangsläufig drucken. Die Leute denken oft, dass Reichtum alles schaffen kann. In der Tat kann das menschliche Leben reichtum reichen Paradies gestapelt werden, aber Reichtum ist nicht absolut und kann geändert werden, den menschlichen Geist zu verbessern. Um die menschliche Seele im Grunde immer noch geistig verändern und verbessern müssen Taufe natürlich, das nicht nur die Taufe und genährt Lernen und Aufklärung, was noch wichtiger ist, die Praxis Worte und Taten in ständigem Wandel und verändern die ganze Natur und Gesellschaft, wie die Fähigkeit, zu transformieren und zu ändern und zu ändern und zu verbessern. Der Kopf der Weltgeschichte und keine fertige Bilder und schöne Landschaft, nur den Mut zu schmieden voraus, um einen Hauch von einem ho wunderbar und erfolgreich zu erhalten. Mit anderen Worten, Traktion und Förderung der menschlichen Geschichte und Weltgeschichte, den Mangel an außergewöhnlichen Mut, Weisheit, Stärke gleichbedeutend mit Manic Fieber oder skurril. Natürliche Geschichte der größten Luftwaffe und schwer zu fassen, nicht nur im ständigen Wandel oder für immer die ganze Natur zu verändern, gleichzeitig ist es brutal mächtig Weg unaufhaltsam, das Leben von Menschen zu ändern, einschließlich ihm und sind abhängig von ökologischen und sozialen Überleben dies ist die Naturgeschichte und der Geschichte der Menschheit der lebendigsten Beschreibungen. natürlich, sehr intelligentes Leben von diesen wird etwas Kraft unter einer Reaktionskraft aufweisen, die nur aus dem Tierleben vorangetrieben werden kann und die Schaffung von qualitativ hochwertigen Intelligenz zu verstehen. jeden Tag das Leben wiederholt sich die Geschichte wiederholt auch täglich. Gänse flogen über dem Boden durch die Herde, die Vögel in einem anmutigen Sprung, um die Fische im Strom die Felder wandern, die Erde eine goldene ..... natürliche Schönheit, ruhig scheint, leise zu wecken Erde schlafen , Agitation aus dem überquellenden Vitalität des Lebens und der hohen Energie ..... deutet alles darauf hin, dass die Bewegung der natürlichen Harmonie, das Leben. Erde, weite grenzenlose Wildnis, Berge, grüne Wiesen, bedeckten Gipfeln Wicklung, alles ist schön und ist nun in der Malerei reflektiert. Erde schöne Landschaft, gespickt mit schönen Planeten in der ruhigen und spektakuläre ..... Mond, Mars in verschiedenen, schöner und schöner Landschaft, weit jenseits der menschlichen Vorstellungskraft. Wenn die Geschichte kein Ende ist, nur zu sagen, Naturgeschichte für immer und unabhängig von der Geschichte der Menschheit und eine kurze Geschichte der Menschheit ist es zwischen dem Ende und der Hälfte endete zerrissen. Spektakuläre Milchstraße, mehr weit als die Erde, Mond und Mars, Jupiter, wenn die Menschheit wie die Erde, Mond, Mars, als Dip, wie ein Spaziergang in der Milchstraße, die Milchstraße Objekte, wenn auch sehr großer Pracht, ist jedoch noch unbedeutend, weil, auch wenn die Galaxy ist nur ein ganz klein wenig des Universums. Mond und Sterne, die Flüsse der Erde, wieder und wieder, Studenten leben Interesse, Interpretation der gesamten menschlichen Welt. Nur die Natur ewig dauern kann, egal, wie gefährlich die Angst vor der Zukunft und der Vergangenheit. Nur die Art des Lebens und der gegenseitigen Abhängigkeit kann in der Zwischenzeit nur einigermaßen überleben, das Leben hat nicht intermittierend, das Leben von nur minimal kommen in der Natur begleitet werden kann. für die Natur, ist das Vorhandensein oder die Abwesenheit von Leben oder fortgeschrittenen intelligenten Lebens, die mit der Natur eigenen Evolution existieren keine Spur von Relevanz ist. dies der bekanntesten Überleben Prinzipien der Naturphilosophie. Ein Blatt, mehr als eine Blume, ein Gras, ein Dorn Gerste, ein Tropfen Wasser, ein Boden, ein Sonnenstrahl. . . . . . Ein wenig Luft in der Welt, immer lächelnd, weil sie und unzählige Leben so hell und bunt. Nicht nur schwanger mit der natürlichen Welt, sondern auch schwanger mit dem Leben und der Menschheit. Ihre größte und herrlichste in der Tatsache, dass sie in der natürlichen Welt verwurzelt sind, ist es ein von der Natur wertvollsten für die Existenz des primitiven Lebens. Auf der Erde scheint es üblich, überraschend, und im fernen Planeten, die Welt, in der Tat die größte und am schwierigsten zu den schillerndsten Perlen Schätze zu finden. Das Leben ist die kostbarste Zeit, der glänzendste von Reichtum, ist es, die am meisten Glück zu schaffen, die größte Weisheit. Traurigste Leben ist faul, die schmerzhafte Krankheit, Unwissenheit ist die dümmste, die meisten gescheitert zuckte zusammen ist - verrückt und aggressiv. Die Welt ist nicht aggressiv, es wird nie brillant Schatten gestellt werden, es gibt keinen Fortschritt im Leben, so traurig wie verlorene Seelen. Weiße Wolken schweben in den Himmel für immer, symbolisiert sie die große natürliche pure Stolz, nie die Erde mit Blumen öffnen, ist es die große menschliche bunt zeigt. Intelligente Menschen können als Erfolg scheitern. Alles, was in der Welt wird nicht ewig dauern, nur der Boden der Sprache der Seele wird für immer unsterblich sein. Strapazen und Widrigkeiten im Leben Kampf von großem Reichtum. Menschen spricht oft über modische Rhetorik, nicht wissend, dass Gerechtigkeit nicht in Mode ist, und diese Sprachen werden oft vergessen und von der Welt und das Verachtete ist voll von Gold ist genau die Wahrheit, auch wenn es oft nicht Phi Dai Huali Mantel. Shallow Menschen nicht immer groß, nur ein tiefes man kann einen Unterschied machen. Beide Welt der Schönheit und wie Chaos, das ist die wirkliche Welt. Wissenschaft und Wahrheit wird immer der ultimative Gewinner sein, obwohl er oft von bösen und absurd ist besiegt. Das Böse und Absurdität kann weit verbreitet sein, aber am Ende kann nicht lange dauern. In der Geschichte der Welt vor der breiten Straße, Kreuzung: gehen Sie nach links, wahrscheinlich den ganzen Weg flach, sofort, kann es gefährlich Weg sein, in zu gehen, kann stehen Sie immer noch, dumpf, und zurück bedeutet es den Tod. Die Weltgeschichte und schaffen einen Sieg marschieren, gehören nie zu ängstlich Menschen und die Weisheit der flachen Mittelmäßigkeit. Die Wellen des Meeres Runde gegen die Küste Klippen, das Meer, Strand waten, sollten Sie berühren Spray, das Meer küssen, diese blauen Ozean, grenzenlose Natur und die menschliche Welt die wahre Bedeutung und Hoffnung. Jingya naturaleza tan hermosa, como si la diosa flotando en ahora si reflejado si cuento mundo en el que la sociedad humana está empapado de carácter amplio comedido de una partícula, aunque en todo su cuerpo de vez en cuando roció brillante, sombra u otro polvo mixto, Sin embargo, ella siempre está sonriendo, muy bonito. Aunque hermosa y colorida vida, pero después de todo, no pintar la danza. Día y noche, noche y día de trabajo, y la creación de empleo. Vivir en un mundo de la arquitectura es tan verdadera resurrección. Naturaleza asimilación y la entrega de la alienación a menudo eran los mismos, el mundo humano de la sociedad humana a menudo hay la entrega de cada uno, la alienación en la asimilación, la alienación asimilación. De nebulosa a partículas biológica a seres humanos, ha sido cierto. La historia del mundo es siempre constantes subidas y bajadas como las olas salvajes olas del mar, creciente, pero a veces la calma, a la sociedad dolores humanos, alegría y calor. Un hombre de estrecha, egoísta y suficiente para destruir su propio futuro brillante arrogante, y un grupo de personas de un fanatismo nación y el egoísmo, traerá la sombra y la neblina a todo el mundo. Cada paso en la vida no es tanto el alpinismo, es más unido a la pared de escalada. Porque la vida es difícil en verdad necesita, independientemente de la riqueza mediocre, incluso la vida más pacífica habrá subidas y bajadas. En la ciencia de la forma de pago más se recibe, al menos es en la vida real, el pináculo de la gloria, las cosas se ponen más menos paga. Varios cientos de miles de años para la persona promedio es muy común, científico naturalista y explorador para ello, esto es sólo un breve momento. Decenas de millones de años de ciencias naturales es la cardinalidad se confirma, por lo demás, entonces genial teorías e hipótesis perderán aura. El mundo es tan pequeño, lleno demasiada gente, el planeta va a colisionar entre sí. Sin mencionar que entre las barreras humanas y étnicas del mundo y luchan entre sí en esta reglas más básicas del juego en el green, no dulzura y luz, sólo se continuarán teniendo un impacto de colisión, sólo se disuelve integración gradual. Los científicos naturales y elaborados explican la historia, a lo sumo, más que la historia humana como una fuerza de la naturaleza y subsidiaria; sociólogos tienden a poner toda la historia de la sociedad humana y la representación humana de poderes sobrenaturales que queda de la clase de adultos de todo el mundo. En el campo, en las colinas, en la estepa, en el puerto, la naturaleza tan sereno, día tras día, repetir la belleza natural del movimiento. Durante miles de años siempre dicen, la gente sigue para crear la historia y la innovación. Sin embargo, la piedra angular de la historia humana, y no sólo simplemente genial y una gran fuerza de combate, en primer lugar, el desarrollo de diversos elementos en función de la historia. Líder guía la historia del mundo requiere de fuerza, progresiva y océano de sabiduría. la naturaleza humana y la necesidad natural de los animales primitivos instintos de convergencia, pero esto no quiere decir que la naturaleza humana es siempre única retroceso original, por el contrario, una categoría de la historia natural de largo fue capaz de evolución y transformación, incluyendo la naturaleza de la sociedad largo proceso histórico proceso natural. Los seres mortales, todo el mundo está lleno de flores de la hierba. Al igual que en el mundo natural, colorido, floración prosperar. Cientos de millones de vidas, el florecimiento de todo el mundo. Si no hay vida humana, la naturaleza será flores, colorido, pero sólo los seres humanos, los altos existe vida inteligente en todo el mundo y el mundo natural que tiene la extraordinaria importancia sin la cual todo lo perdería todo su sentido maravilloso. La naturaleza es grande en verdad y muy hermosa, diez mil billones de generaciones humanas y promover la continuación de todo el planeta, y la historia. En este mundo largo y creciente, encendiendo uno a cada momento de la pasión y la esperanza, y cada momento está lleno de conflictos y la lucha entre sí ..... creando así una amplia variedad de brillante victoria, la derrota y la muerte. esto es los millones de años de interpretación biológica y la supervivencia de la historia natural del mundo y la sabiduría para crear animales y toda la historia de que el mundo cambie. Por supuesto, ninguna historia de la humanidad y que se reproducen todos creados, sin tener en cuenta el mundo natural y el mundo mejor o feo, brillante u oscuro, o continuar a perecer, que no tienen ningún sentido racional. la reconstrucción esperar universo natural un mundo, espera Dios reproducción de un ser humano, es totalmente realista y la supervivencia del planeta y de la sabiduría humana es ideal para crear muy diferentes. Mundo se abrió una nueva página todos los días, la naturaleza y el universo también se han actualizado todos los días del calendario, porque ya sea humano o cósmico, ningún momento no es un segundo cambio natural. Sólo la verdadera liberación humana del mundo de la naturaleza y la sociedad fuera de la historia para producir un gran avance y salto. La sabiduría, la razón, el temple y el talento es el amanecer del mundo humano del aprendizaje, el trabajo y la educación es de este mundo hacia una nueva escalera de la madrugada. En el mundo del jardín, hay más de las mariposas vuelan, desbordante fragante, hay contención de pájaros, poco a poco, al mismo tiempo, hay insectos con alas de flujo, Weng Weng naturaleza mosca aleteo realmente impresionante en estado de embriaguez. familia humana, mapa étnico deslumbrante. De hecho, en la vida real de la familia ordinaria más común es una clara manifestación del genoma humano. sagrada familia ilustre, después de todo, es una fracción, el público en general es de hecho la familia en todas partes. Esto es humana imágenes más realistas del mundo. Por lo tanto, si desea crear ninguna historia gloriosa, que inevitablemente se imprimirán estas imágenes de mapas genéticos y la nueva marca de imagen. La gente suele pensar que la riqueza puede crear todo. De hecho, la vida humana se pueden apilar rico riqueza rico paraíso, pero la riqueza no es absoluta y se pueden cambiar para mejorar la mente humana. Para cambiar y mejorar el alma humana, fundamentalmente, todavía necesitan espiritual el bautismo por supuesto, esto no es sólo el bautismo y nutre el aprendizaje y la iluminación, que es más importante, practicar palabras y hechos en constante transformación y cambiar toda la naturaleza y la sociedad, tales como la capacidad de transformar y cambiar y cambiar y mejorar. El jefe de la historia del mundo y no hay imágenes ya hechas y un hermoso paisaje, sólo el coraje para seguir adelante con el fin de obtener un indicio de una maravillosa ho y con éxito. En otras palabras, la tracción y promover la historia humana y la historia del mundo, la falta de un valor extraordinario, la sabiduría, la fuerza equivalente a fiebre maníaco o caprichosa. mayor de la fuerza aérea de la historia natural y difícil de alcanzar, no sólo en el cambio constante o cambiando para siempre la naturaleza entera, mismo tiempo, es brutal y poderosa forma inexorable cambiar la vida de los seres humanos, incluyendo él y dependerá de la supervivencia ambiental y social esta es la historia natural y la historia humana de las descripciones más vívidas. naturalmente, la vida altamente inteligente de éstos tendrá un poco de fuerza en virtud de una fuerza de reacción, que sólo puede ser avanzado de la vida animal y la creación de la inteligencia de alta calidad a entender. Repite cada día la vida, la historia se repite a diario también. Gansos voló sobre el suelo a través de la multitud, los pájaros en un salto grácil, los peces en la corriente errante los campos, la tierra una de oro ..... belleza natural, tranquilidad, silencio parece estela tierra para dormir , la agitación de la vitalidad desbordante de vida y de alta energía ..... todo indica que el movimiento de armonía natural, la vida. Tierra, vasto desierto sin límites, de bobinado montañas, verdes praderas y picos cubiertos, todo es bello y ahora se refleja en la pintura. Tierra hermoso paisaje, salpicado de hermoso planeta en el tranquilo y espectacular ..... luna, Marte en diversa, más bella y más bellos paisajes, mucho más allá de la imaginación humana. Si la historia no tiene fin, sólo para decir siempre la historia natural e independiente de la historia humana, y una breve historia de la humanidad se debate entre el final y el tiempo terminó. Espectacular Vía Láctea, mucho más que la Tierra, la Luna y Marte, Júpiter, si la humanidad en la Tierra, la Luna, Marte, como salsa, como un paseo en la Vía Láctea, los objetos de la Vía Láctea, aunque muy gran esplendor, sin embargo, sigue siendo insignificante, porque, aunque el Galaxy es sólo una pequeña poco del universo. La luna y las estrellas, los ríos de la tierra, una y otra vez, los estudiantes viven interés, la interpretación de todo el mundo humano. Sólo la naturaleza puede durar para siempre, no importa lo peligroso que es el miedo al futuro y el pasado. Sólo la naturaleza de la vida y la interdependencia sólo puede sobrevivir razonablemente, mientras tanto, la vida tiene no intermitente, la vida puede estar acompañada de un mínimo de sólo existen en la naturaleza. por la naturaleza, la presencia o ausencia de la vida o la vida inteligente avanzada, que existe con la propia evolución de la naturaleza no existe la más mínima relevancia. este es el más famoso principios de supervivencia de la filosofía natural. Una hoja, más de una flor, una hierba, un Punto de la cebada, una gota de agua, un suelo, un rayo de sol. . . . . . Un poco de aire en el mundo, siempre sonriendo, porque ellos y un sinnúmero de vidas tan brillante y colorido. No sólo embarazada con el mundo natural, sino también embarazada de vida y la humanidad. Su mayor y más glorioso en el hecho de que están enraizadas en el mundo natural, es uno de los más valiosos para la existencia de vida primitiva naturaleza. En la Tierra parece un lugar común, sorprendente, y en el lejano planeta, el mundo, de hecho, la mayor y más difícil encontrar los tesoros de la perla más deslumbrantes. La vida es el tiempo más precioso, el más brillante de la riqueza, es crear la mayor felicidad, la mayor sabiduría. la vida más triste es perezoso, la enfermedad más dolorosa, la ignorancia es la más estúpida, más no se encogió - loco y agresivo. El mundo no es agresivo, nunca será eclipsado brillante, no hay progreso en la vida, tan triste como almas perdidas. nubes blancas que flotan en el cielo para siempre, que simboliza la gran soberbia pura natural, nunca abra la tierra con flores, que muestra la gran colorido humana. Las personas inteligentes pueden fallar como tener éxito. Todo en el mundo no va a durar para siempre, sólo la parte inferior de la lengua del alma será para siempre inmortal. Dificultades y las adversidades en la lucha de la vida de una gran riqueza. A menudo la gente habla de la retórica de moda, sin saber que la justicia no está de moda, y los idiomas son a menudo olvidados y despreciados por el mundo está lleno de oro es, precisamente, la verdad, aunque a menudo no lo hace la capa Phi Dai Huali. la gente superficial no siempre es grande, sólo una profunda pueden hacer una diferencia. Tanto el mundo de la belleza, y al igual que el caos, este es el mundo real. La ciencia y la verdad siempre será el ganador final, a pesar de que a menudo es derrotado por el mal y absurdo. El mal y el absurdo puede ser rampante, pero al final no puede durar mucho tiempo. En la historia del mundo antes de la amplia avenida, encrucijada: vaya a la izquierda, probablemente todo el camino plana, de inmediato, puede ser peligroso camino; para caminar, que puede estar de pie todavía, sin brillo, y una copia que significa la muerte. La historia del mundo y crear una marcha victoria, no pertenecen a las personas tímidas y la sabiduría de la mediocridad de poca profundidad. Las olas del mar contra el regazo de los acantilados de la orilla, con vistas al mar, playa vadear, se debe rociar tocar, besar el mar, este océano azul, mundo natural sin límites y el mundo humano el verdadero significado y esperanza. 自然界如此靜雅秀美,《quiet》彷彿女神漂浮在若映若現的童話世界裡.人類社會也是浸潤在博大的自然嫻靜中的一顆微粒,儘管在她的周身不時撒滿明媚,陰翳或者其他的混塵,但是,她始終嫣然一笑,楚楚動人. 生活 雖然美麗多彩,但畢竟不是繪畫歌舞。日日夜夜,夜以繼日地是勞動,創造和工作。生活的世界就是如此架構如此悲喜。 自然界同化和異化往往交割進行,同樣,人類社會人類世界往往也存在彼此的 交割,在同化中異化,在異化中同化。從星雲到粒子,從生物到人類,莫不如此。 世界歷史就像大海永遠起伏不斷的波濤駭浪,洶湧澎湃,有時卻又風平浪靜,給人類社會帶來陣痛,喜悅和溫馨. 一個人的狹隘,自私和狂妄足以毀滅自己的美好前程;而一群人一個民族的狂熱和自私,將會給整個世界帶來陰翳和霧霾. 人生的每一步與其說是攀登高山,倒不如說是在攀岩附壁.因為人生的的確確需要艱難,不論平庸富貴,即使最平靜的生活也會存有坎坷. 在科學的道路上付出的越多得到的卻是越少,在人生 真正輝煌的頂峰上,付出的越少得到的東西越多. 幾百年幾千年對於普通人來說很不平凡,而對於自然科學家探險家來說,這僅僅是短暫的一瞬.幾萬年幾百萬年才是自然科學印證的基數,否則,再偉大的理論和假說也會失去光環. 世界如此狹小,擁擠的人太多了,星球也會相互撞擊.那就更不必說世界人類和族群之間彼此的隔閡和爭鬥了.在這個最基本的生演法則裡,不會和風細雨,只有在不斷撞擊碰撞中,才會逐步融合溶解. 自然科學家解釋和闡述歷史,充其量僅僅把人類歷史當作自然的一種力量和附屬;社會學家往往把人類社會和人類世界現存的一切歷史描繪成人類超自然的力量. 在田野,在山崗,在草原,在海港,大自然如此寧靜安詳,日復一日,重演著自然美妙的樂章. 幾千年來總是說,人們不斷創造和創新歷史.但是,歷史的基石並不僅在於人類單純的偉大和巨大的搏擊力,首先在於基於歷史的各種發展元素. 主導引導世界歷史需要力量,奮進和智慧的海洋. 人類的本性必然和自然的原始性動物本能相銜接,但這並不是說人類的本性永遠只能返祖原始,相反,在相當長的自然歷史範疇中才得以進化和改造.包括自然的社會的漫長的歷史過程自然過程. 芸芸眾生,整個世界存滿鮮花芳草.猶如自然世界裡,萬紫千紅,茁壯勃發.億萬生靈,勃發著這個世界的全部.倘若沒有人類生命,自然界也會花團錦簇,精彩紛呈.但是,只有人類,高智慧生命存在,整個世界和自然界才具有非凡的意義.捨此,一切精彩都會變的毫無意義. 自然界的確很偉大而且十分美麗,萬萬億人類一代又一代延續和推進著整個星球和歷史.在這漫長而激蕩的世界裡,無時不刻點燃著彼此的激情和希望,又無時不刻存滿著彼此的紛爭和搏鬥.....從而造就各種各樣的輝煌,勝利,失敗和死亡.這就是千百萬年來生物的演繹和生存,世界自然的歷史和智慧動物所創造和改變的整個世界歷史.當然,沒有人類歷史所扮演和所創造的一切,世界和自然世界不論美好或是醜陋,輝煌或是黑暗,繼續或是滅亡,那都毫無理性意義.奢望自然宇宙再造一個世界,奢望上帝再生一個人類,這完全和現實生存的地球智慧人類的理想和創造大相徑庭. 世界每天翻開新的一頁,自然和宇宙每日也都在刷新日曆,因為不論人類或是宇宙,沒有一時一秒不在自然地變化. 人類只有真正從自然界和社會世界裡解放出來,才能產生歷史的突破和飛躍. 智慧,理性,秉性和天賦是人類世界的曙光.學習,勞動和教育正是這邁向世界新曙光的天梯. 在世界的花園裡,不止有彩蝶紛飛,香花四溢,也有鳥雀爭鳴,姍姍而去;同時,還有飛蟲流翅,翁翁撲飛.自然界果真令人叫絕陶醉. 人類的家族,族群圖譜令人眼花繚亂.其實,在現實生活中最常見的普通家庭就是人類基因圖譜的生動體現.顯赫的神聖的家族畢竟是九牛一毛,普通的大眾家族確是遍地​​開花.這正是人類世界最真實的圖像.所以,不論創造任何輝煌的歷史,都難免印製這些圖像的基因圖譜和新的圖像印記. 人們常常以為,財富可以創造一切.其實不然,財富可以堆積人類生活富裕富足的天堂,但財富並不絕對能夠從根本上改變和提升人類的心靈.要改變和提升人類的靈魂,仍然需要精神的洗禮.當然,這種洗禮和熏陶並不僅僅是學習和教化,更重要的是在整個自然和社會的不斷改造和變革中實踐言行,才能隨著這種改造和改變而改變和提升. 世界歷史的前頭並沒有現成的美麗圖像和景色,只有勇於開拓進取才能獲有一絲一豪的精彩和成功.換句話說,牽引和推動人類歷史和世界歷史,缺乏非凡的膽識,智慧,力量無異於 狂躁發熱或是異想天開. 自然歷史最偉大和不可捉摸的神氣力量,不僅在永遠不斷地變革或改變著整個自然界,同時,它又十分殘酷地強大地不可抗拒地不斷改變著生命和人類包括他賴以生存的環境和社會.這正是自然歷史和人類歷史最真切的描述.自然,高智慧的生命在這些強力下也會產生一定的反力,這只能從高級生命動物的高端智慧和創造來理解. 生活每天都在重複,歷史每日也在重演. 天上飛過雁群,地上走過羊群,小鳥在輕盈地跳躍,魚兒在溪水游盪,田野,大地一片金黃.....自然的美麗,恬靜,似乎又在無聲地喚醒沉睡的大地,激蕩起生命的勃發生機和高昂的活力.....一切預示著自然,生命的和諧樂章. 廣袤的大地,無邊的原野,逶迤的山嶺,青色的草原,皚皚的雪峰,一切都在美麗和彩畫中映現.大地美貌風光,點綴著星球的秀美和壯觀.....在靜謐的月球,在多姿的火星,更美麗更秀麗的景緻,遠遠超出人類的遐想. 如果說歷史沒有什麼終結,那麼只有說自然歷史永遠存在而且獨立於人類社會歷史之外,而短暫的人類歷史則存在終結和半終結之間徘徊. 銀河系的美麗壯觀,遠遠超過地球,月球和火星,木星,倘若人類像在地球,月球,火星那樣漫步暢遊一樣進入銀河星系,銀河天體,雖然萬分偉大輝煌,但是,仍然微不足道,因為,即使銀河也僅僅是宇宙之渺小的一點一滴. 日月星辰,江河大地,周而復始,生生息息,演繹著人類世界的全部.惟有大自然可以永存,不論未來和過去多麼危險恐懼.自然界的生命惟有僅僅依存並且能夠合理地生存於其間,生命才不會斷續,生命才有極微的可能伴隨自然界存在.而對於自然界來說,生命或高級智慧生命存在與否,這與大自然本身的存在演變並無一絲一毫的關聯.這就是最著名的自然哲學生存原理. 一片樹葉,一多花朵,一顆青草,一穂麥苗,一滴水,一把土,一縷陽光。 。 。 。 。 。一點空氣,在世界里永遠微笑,因為,它們和無數的生命一樣燦爛多彩。不僅孕育著這個自然世界,更孕育著生命和人類。它們的最偉大最輝煌之處就在於它們根源於自然界,是自然界最難能可貴的生命賴以存在的基元。在地球上似乎司空見慣,不足為奇,而在遙遠的星球世界,確是最偉大最耀眼的也最難覓的珍珠瑰寶。 人生最寶貴的是時間,最輝煌的是財富,最幸福的是創造,最偉大的是智慧。 人生最悲哀的是 懶惰,最痛苦的是疾病,最愚蠢的是無知,最失敗的的是畏縮-喪失理智和進取心。 世界沒有進取,就會黯然失色永遠不會輝煌;人生沒有進取,如同丟失靈魂一樣可悲。 在天際永遠漂浮著白雲,它像徵著偉大自然的高傲純潔;在 大地永遠開放著鮮花,它展示著偉大人類的絢麗多彩. 智慧的人可以把失敗當作成功. 世界一切東西都不會永存,惟有發自靈魂深處的語言才會萬古不朽. 艱難困苦和逆境是人生奮鬥的巨大財富。 世人常常把時髦的辭藻掛在嘴邊,殊不知時髦的並非天理,而那些常被世人鄙視和淡忘的語言恰恰存滿著真理的含金量,儘管它時常沒有披戴華麗的外衣。 淺薄的人永遠做不成大事,只有城府很深的人才能有所作為。 世界既有美景,又有亂像,這正是現實的世界。 科學和真理永​​遠是最終的勝利者,儘管他經常被邪惡和荒謬所擊敗。邪惡和荒謬可以猖獗一時,但終究不能長久。 在世界歷史的寬廣大道前,是三岔口:往左走,可能一路平坦;往右走,可能是危途;往中走,可能是原地踏步,平淡,而倒退則意味著滅亡。 世界歷史的開創和勝利進發,永遠不會屬於膽怯的人和智慧淺薄的庸才。 大海的波濤,拍打著海岸峭壁,眺望大海,涉水沙灘,你應當撫摸浪花,親吻大海,這蔚藍色海洋,蘊藏著無限的自然世界和人類世界的真諦和希望。 おとぎ話の世界の人間社会が時々彼女の全身にかかわらず、粒子の広いおとなしそうな自然の中に浸漬され、明るい、影や他の混合粉がまぶし場合Jingya自然とても美しい、女神が今に浮かんでいるかのように反射した場合、しかし、彼女はいつも非常に美しい、笑っています。 美しく色鮮やかな生活が、しかし、すべての後に、ダンスを描くありません。昼と夜、昼と夜の労働、雇用創出。建築の世界に住んでいることはとても真の復活です。 自然同化と疎外の配信は、互いの配信、同化で疎外、同化疎外がしばしばありますが、多くの場合、人間社会の人間の世界と同じでした。星雲からの生体からの粒子にヒトに、それは本当でした。 世界史は常に一定の浮き沈み海の波のような野生の波、急増し、時には穏やかな、人間社会の痛みに、喜びと暖かさです。 、狭い利己的な、自分の明るい未来を破壊するのに十分な傲慢の男;および国家の狂信と利己主義の人々のグループは、全世界に影や曇りをもたらすでしょう。 生活の中ですべてのステップは、人生は浮き沈みがありますも、最も平和な生活が、関係なく、富平凡なの、実際に必要とするハードなので、それはより。壁登りに接続されているので、多くの登山ではありません。 科学ではより多くのあなたが取得を支払うための方法、あまりそれは、実際の生活の中で栄光の頂点である、より多くの事は少ない給料を得ます。 平均的な人のための年の数十万はそれのために非常に一般的な、自然科学者や探検家であり、これはただの一瞬である。自然科学の年の数千万人は、カーディナリティが、その後素晴らしい、そうでない場合は、確認されています理論や​​仮説はオーラを失うことになります。 世界はとても小さい、混雑しあまりにも多くの人々で、惑星は互いに衝突します。唯一の、世界の人間と民族の障壁の間でそれを言及し、緑ではなく、甘さと光の中で遊びのこの最も基本的なルールでお互いを戦うためにはありません衝突に影響を与え続け、唯一の緩やかな統合が溶解しました。 自然科学者は説明し、自然と子会社の力として、単に人間の歴史、最高の状態で、歴史を詳しく説明し、社会学者は、すべての人間社会の歴史と世界の残りの大人クラス超自然的な力の人間描写を置く傾向があります。 フィールドでは、丘の上に、港で草原、とても穏やかな自然、日後の日に、動きの自然の美しさを繰り返します。 何千年もの間、常に言うために、人々は、しかし。歴史と革新を作成するために、人類の歴史の礎を継続し、単に素晴らしいと偉大な戦闘力、何よりもまず、履歴に基づいて、様々な要素の開発だけではなく。 世界史のガイドをリードする強さ、プログレッシブと知恵の海を必要とします。 人間性と収束の自然必要原始動物の本能が、これは人間の本性は、常に唯一のオリジナルの先祖返りであると言っているわけではないが、逆に、長い自然史カテゴリは社会の性質を含め、進化と変換することができました長い歴史的プロセス自然なプロセス。 モータル人間、全世界が繁栄咲く、自然界に色とりどりの花草。同様のいっぱいです。数百万人の命の何百も、全世界のブルーミング。全く人間の生命が存在しない場合、自然、花、カラフルな、しかし人間だけ高くなり、知的生命体はすべてが無意味素敵になるであろうことなく、特別な意味を持っている世界と自然界全体に存在します。 自然は確かに素晴らしいと非常に美しいです、1万兆人間の世代や地球全体、そして歴史の継続を推進しています。この長いと急増世界では、情熱と希望のすべての瞬間お互い、およびすべての瞬間に点火します争いに満ちているので、華麗な勝利、敗北と死の多種多様を作成する.....お互いに苦労しています。これは、動物を作成するために、世界の自然史と知恵の生物学的解釈と生存の何百万年であり、変更するには、世界の全歴史。もちろん、全く人間の歴史ず、すべての作成を果たし、関係なく、自然界の世界良いか、醜い華麗または暗い、または死ぬし続け、合理的な意味を持っていないこと。再構築は、自然宇宙を期待世界は、神が人間を再現期待し、それは完全に現実的であると地球と人間の知恵の生存率は非常に異なるの作成に最適です。 世界は、毎日新しいページを開いた自然と人間や宇宙のかどうか、何のモーメントは、天然1 2番目の変更ではないではありませんので、宇宙はまた、毎日のカレンダーを更新されます。 突破口と飛躍を生産する歴史のうち、自然と社会の世界からの真の人間の解放のみ。 知恵、理由、勇気と才能は、学習、労働、教育の人間の世界の夜明けは新しい夜明けのはしごに向かってこの世界です。 庭の世界では、蝶が飛ぶよりも香りの溢れがある、鳥競合がゆっくりと離れて、そこにある、同じ時間は、流れ翼昆虫がある、ウェンウェンフラッタは酔って本当に素晴らしい自然を飛びます。 すべての後、分数である人間の家族、民族マップまぶしい。実際には、現実の生活の最も一般的な普通の家族の中でヒトゲノムの鮮やかな現れである。イラスト聖なる家族、一般市民が家族どこでも確かにある。これは、ヒトであります世界で最もリアルな画像。そう、任意の栄光の歴史を作成するかどうか、それは必然的に、これらの遺伝子地図の画像と新たな画像マークを印刷します。 人々はしばしば実際には、人間の生命は富裕福な豊かな楽園を積層することができる。富はすべてのものを作成することができると思いますが、富は絶対的なものではなく、人間の心を強化するために変更することができます。基本的に人間の魂を変更し、改善するために、まだ精神的な必要がありますコー​​スの洗礼が、これはただの洗礼ではなく、より重要なのは、学習や啓発育て、一定の変換における練習の言動や、変換および変更し、変更し、改善する能力として、全体の自然と社会を変えます。 世界史のヘッドとなし、既製のイメージと美しい風景、ホ素晴らしいと成功した。言い換えれば、トラクションのヒントを得て、人類の歴史と世界史を促進するために前進するだけの勇気、臨時勇気の欠如、知恵、強に等しいです 躁発熱や気まぐれ。 自然史の最大の空軍ととらえどころのないだけでなく、一定の変更または永久に全体的な性質を変え、同時に、それは残酷に容赦なく彼を含めて、環境や社会の生存に依存し、人間の生活を変える強力な方法ですこれは、自然史、最も鮮やかな記述の人類の歴史である。当然、これらの非常に知的生命が唯一の動物の生活から前進させることができる、高品質の知能の作成が理解するために、反力、下にいくつかの力を持つことになります。 毎日の生活を繰り返し、歴史はまた、毎日繰り返されます。 ガチョウが群れを介してグランド上空、優雅なジャンプで鳥、フィールドを徘徊ストリーム内の魚、地球の黄金.....自然の美しさは、静かに地球を眠って復帰させるために静かなようです、人生の溢れる活力と高エネルギーから攪拌.....すべてが自然の調和、生活の動きことを示しています。 地球、広大な無限の荒野は、山々、緑の草原、キャップされたピークを巻き、すべてが美しいですし、今の絵に反映されています。静かで壮大で美しい地球が点在地球美しい風景、.....月、はるかに人間の想像を超えて多様な、より美しく、より美しい風景、火星。 歴史が終わり、唯一の永遠の自然史を言うと人間の歴史の独立のために、そして人類の簡単な歴史ではない場合がある端部との間に引き裂かれたと半分が終了されます。 壮大な天の川地球よりもはるかに多くの道、月や火星、木星、地球、月、火星、ディップなど、天の川銀河に散歩など、天の川オブジェクトとして人間であれば、非常に大きな素晴らしさは、しかし、まだ微々たるものですが、でも銀河場合、理由宇宙のほんの少しです。 月と星、地球の川は、何度も何度も、学生は全体の人間の世界の関心、解釈を生きる。だけ自然がどんなに危険な未来の恐怖と過去、永遠に続くことはできません。人生と相互依存の自然だけが唯一の合理的にその間に生き残ることができる、人生が持っています断続的ではない、人生は自然の中でのみ、最小限のが存在を伴うことがある。自然のために、自然の独自の進化に存在する生命または高度な知的生命体の存在または不在は、関連性の細断処理ではありません。これは最も有名です自然哲学の生存の原則。 葉、複数の花、草、スパイク大麦、一滴の水、土、太陽の光。 。 。 。 。 。 One時空気、世界では、常に笑みを浮かべて、彼らと無数の命のような明るくカラフルなので。自然界と妊娠だけでなく、生活や人間性を持つ妊娠していないだけ。彼らは自然界に根ざしていることを実際に彼らの最大の、最も輝かしい、それは自然の原始的な生命の存在のための最も貴重なの一つです。地球上では、最も見事な真珠の宝物を見つけることが最大かつ最も難しい確かに、世界、ありふれた驚くべき、そして遠くにある惑星にいるようです。 人生は最も貴重な時間、富の最も素晴らしいです、最も幸福、最大の知恵を作成することです。 悲しい人生は、ほとんどの痛みを伴う病気は、無知であり、怠惰で最も愚かな、最も尻込みされて失敗しました - 非常識と積極的。 失われた魂のように悲しい生活の中で何の進展は、ありません。世界はそれが華麗な影されることはありません、積極的ではありません。 永遠に空に浮かぶ白い雲が、それは素晴らしい自然の純粋なプライドを象徴する;花で地球を開くことはありません、それはカラフルな偉大な人間を示しています。 インテリジェントな人々が成功するように失敗することがあります。 世界のすべては永遠には続かないだろう、魂の言語の底部のみは永遠に不滅になります。 偉大な富の生活闘争における苦難と逆境。 人々はしばしばない正義はファッショナブルではないことを知って、ファッショナブルなレトリックについて語り、およびこれらの言語は、しばしば忘れられ、金の完全である世界によって軽蔑されていることが多いピピ大フアリコートませんが、正確に真実です。 浅い人は常にビッグ、唯一の深いものは違いを作ることができません。 両方の世界の美しさは、カオスのように、これは現実の世界です。 彼はしばしば悪と不条理に負けているが科学真実は常に、最終的な勝者となります。悪と不条理が横行することができますが、最終的に長続きすることはできません。 広い大通りの前に世界の歴史の中で、クロスロード:すべての方法フラットおそらく、左折、すぐに、それは危険な方法かもしれない;で歩いて、あなたは、まだ立って鈍い、それは死を意味バックすることができます。 世界史と勝利の行進を作成するには、臆病な人と浅い平凡の知恵に属していることはありません。 ビーチワタリ、海を見下ろす海岸の崖に対する海のラップの波が、あなたは海、この青い海、無限の自然界と人間界の真の意味と希望をキス、感動スプレーする必要があります。 Jingya la natura così bella, come se la dea che galleggia in ora se riflessa se fiabesco mondo in cui la società umana è imbevuto in pieno la natura pudica di una particella, anche se in tutto il suo corpo, di volta in volta spruzzato luminoso, ombra o di altra polvere mista, Tuttavia, lei è sempre sorridente, molto bella. Anche se la vita bella e colorata, ma dopo tutto, non la pittura danza. Giorno e notte, giorno e notte di lavoro, e la creazione di posti di lavoro. Vivere in un mondo dell'architettura è così vero risurrezione. Natura assimilazione e la consegna alienazione erano spesso gli stessi, il mondo umano della società umana ci sono spesso la consegna a vicenda, alienazione in assimilazione, l'assimilazione alienazione. Da nebulosa particelle biologica a persone, è stato vero. La storia del mondo è sempre un continuo saliscendi come le onde del mare onde selvagge, in aumento, ma a volte calmo, a dolori società umana, gioia e calore. Un uomo di stretta, egoista e sufficiente a distruggere il proprio futuro luminoso arrogante, e un gruppo di persone di una nazione il fanatismo e l'egoismo, porterà ombra e foschia a tutto il mondo. Ogni passo nella vita non è tanto l'alpinismo, è più attaccato alla parete di arrampicata. Perché la vita è dura davvero bisogno, a prescindere dalla ricchezza mediocre, anche la vita più tranquilla ci saranno alti e bassi. Nella scienza il modo per pagare più si ottiene, meno è nella vita reale, l'apice della gloria, le altre cose si fanno meno paga. Diverse centinaia di migliaia di anni per la persona media è molto ordinaria, naturalista ed esploratore per esso, questo è solo un breve momento. Decine di milioni di anni di scienza naturale è la cardinalità confermato, in caso contrario, poi grande teorie e ipotesi perderanno aura. Il mondo è così piccolo, affollato troppe persone, il pianeta si scontrerà con l'altro. Per non parlare tra barriere umane ed etniche di tutto il mondo e combattere l'un l'altro in questo più elementari regole del gioco nel verde, non dolcezza e luce, solo continuano ad avere un impatto di collisione, solo l'integrazione graduale sciolto. scienziati naturali spiegare e elaborare la storia, nella migliore delle ipotesi, solo la storia umana come una forza della natura e della controllata, sociologi tendono a mettere tutta la storia della società umana e rappresentazione umana di rimanere classe adulta poteri soprannaturali del mondo. Nel campo, in collina, nella steppa, nel porto, la natura in modo sereno, giorno dopo giorno, ripetere la bellezza naturale del movimento. Per migliaia di anni dicono sempre, la gente continua a creare la storia e innovazione. Tuttavia, la pietra angolare della storia umana, e non solo semplicemente fantastico e di grande forza di combattimento, in primo luogo lo sviluppo di vari elementi basati sulla storia. Leader guida storia del mondo richiede forza, progressiva e oceano di saggezza. La natura umana e la necessità naturale di origine animale primitivo istinto di convergenza, ma questo non vuol dire che la natura umana è sempre solo ritorno al passato originale, al contrario, una lunga categoria di storia naturale è stato in grado di evoluzione e trasformazione, compresa la natura della società lungo processo storico processo naturale. esseri mortali, tutto il mondo è pieno di fiori Erba. Come nel mondo naturale, colorato, fiore prosperare. Centinaia di milioni di vite, la fioritura di tutto il mondo. Se non c'è la vita umana, la natura sarà fiori, colorato, ma solo gli esseri umani, gli alti vita intelligente esiste in tutto il mondo e il mondo naturale che ha il significato straordinario senza il quale tutto sarebbe diventata priva di senso meraviglioso. La natura è veramente grande e molto bella, diecimila miliardi di generazioni umane e promuovere la continuazione del tutto il pianeta, e la storia. In questo lungo e in aumento mondo, accendendo l'un l'altro tutti i momenti di passione e di speranza, e ogni momento è pieno di lotte e di lotta con l'altro ..... creando così una vasta gamma di brillante vittoria, sconfitta e la morte. questo è il milioni di anni di interpretazione biologica e la sopravvivenza della storia naturale del mondo e la saggezza per creare animali e tutta la storia del mondo a cambiare. Naturalmente, nessuna storia umana e ha giocato tutto ha creato, a prescindere dal mondo naturale e il mondo migliore o brutto, brillante o scuro, o continuare a perire, che non hanno senso razionale. la ricostruzione si aspettano universo naturale un mondo, si aspettano Dio riprodurre un essere umano, è del tutto realistico e la sopravvivenza del pianeta e della saggezza umana è l'ideale per la creazione di molto diverso. Mondiale ha aperto una nuova pagina ogni giorno, la natura e l'universo sono anche aggiornato calendario giornaliero, perché se umana o cosmica, nessun momento, non è un modo naughty secondo cambiamento. Solo la vera liberazione dell'uomo dal mondo della natura e della società fuori dalla storia per produrre una svolta e saltare. La saggezza, la ragione, coraggio e il talento è l'alba del mondo umano di apprendimento, il lavoro e l'istruzione è di questo mondo verso una nuova scala alba. Nel mondo del giardino, c'è più di farfalle volano, traboccante fragrante, ci sono uccelli contesa, lentamente, nello stesso tempo, ci sono insetti flusso ali, Weng Weng svolazzare mosca natura davvero sorprendente intossicato. Famiglia umana, mappa etnica abbagliante. In effetti, nella vita reale più comune famiglia normale è una manifestazione viva del genoma umano. Illustre sacra famiglia, dopo tutto, è una frazione, il grande pubblico è infatti la famiglia in tutto il mondo. Questo è umano le immagini più realistiche del mondo. così, se creare una storia gloriosa, che verranno stampate inevitabilmente queste immagini di mappe genetiche e nuovo contrassegno delle immagini. La gente spesso pensa che la ricchezza può creare tutto. In realtà, la vita umana può essere impilato ricchezza ricco ricco paradiso, ma la ricchezza non è assoluta e possono essere modificate per migliorare la mente umana. Per modificare e migliorare l'anima umana fondamentalmente ancora bisogno spirituale il battesimo, naturalmente, questo non è solo il battesimo e nutrito l'apprendimento e l'illuminazione, cosa ancora più importante, le parole e le azioni di pratica in costante trasformazione e modificare tutta la natura e la società, come ad esempio la capacità di trasformare e cambiare e cambiare e migliorare. Il capo della storia del mondo e non ci sono immagini ready-made e uno splendido scenario, solo il coraggio di andare avanti al fine di ottenere un accenno di Ho meraviglioso e di successo. In altre parole, la trazione e promuovere la storia umana e la storia del mondo, la mancanza di coraggio straordinario, la saggezza, la forza equivale a febbre maniacale o stravagante. grande forza aerea di storia naturale e sfuggente, non solo in costante cambiamento e cambiando per sempre l'intera natura, nello stesso tempo, è brutalmente potente inesorabilmente cambiando la vita degli esseri umani, compreso lui e dipendono la sopravvivenza ambientale e sociale questa è la storia naturale e storia umana delle descrizioni più vivide. naturalmente, la vita molto intelligente di questi avrà un po 'di forza sotto una forza di reazione, che può essere avanzata solo dalla vita degli animali e la creazione di intelligenza di alta qualità da capire. Ripetuta vita di ogni giorno, la storia si ripete tutti i giorni anche. Oche ha sorvolato il terreno attraverso il gregge, gli uccelli in un salto aggraziato, i pesci nel torrente vagare nei campi, la terra una d'oro ..... bellezza naturale, tranquillo, sembra svegliarsi in silenzio dormire terra , agitazione dalla vitalità traboccante di vita e di alta energia ..... tutto indica che il movimento di armonia naturale, la vita. Terra, vasto deserto sconfinato, l'avvolgimento montagne, il verde dei prati, vette innevate, tutto è bello ed è ora riflette nella pittura. Terra splendido scenario, punteggiata di meraviglioso pianeta nella tranquilla e spettacolare ..... luna, Marte in diversi, più bella e più bei paesaggi, ben oltre l'immaginazione umana. Se la storia è senza fine, solo per dire di storia naturale per sempre e indipendente della storia umana, e una breve storia dell'umanità vi è diviso tra la fine e la metà è conclusa. Spettacolare Via Lattea, molto più di quanto la Terra, la Luna e Marte, Giove, se l'umanità come la Terra, Luna, Marte, come un tuffo, come una passeggiata nella Via Lattea, gli oggetti della Via Lattea, anche se molto grande splendore, tuttavia, è ancora insignificante, perché, anche se il Galaxy è solo una piccola po 'dell'universo. Luna e le stelle, i fiumi della terra, ancora e ancora, gli studenti vivono l'interesse, l'interpretazione di tutto il mondo umano. Solo la natura può durare per sempre, non importa quanto sia pericolosa la paura del futuro e il passato. Solo la natura della vita e l'interdipendenza non può che ragionevolmente sopravvivere nel frattempo, la vita ha non intermittente, la vita può essere accompagnata da esistere solo minime in natura. per la natura, la presenza o l'assenza di vita o vita intelligente avanzato, che esiste con la stessa evoluzione della natura non è uno straccio di rilevanza. questo è il più famoso principi di sopravvivenza della filosofia naturale. Una foglia, più di un fiore, un prato, un picco di orzo, una goccia d'acqua, un terreno, un raggio di sole. . . . . . Un po 'd'aria in tutto il mondo, sempre sorridente, perché e innumerevoli vite come luminoso e colorato. Non solo in stato di gravidanza con il mondo naturale, ma anche in stato di gravidanza con la vita e l'umanità. Il loro più grande e più gloriosa nel fatto che essi sono radicati nel mondo naturale, è uno dei di più prezioso per l'esistenza della vita primitiva natura. Sulla Terra sembra banale, sorprendente, e nel lontano pianeta, il mondo, anzi il più grande e più difficile da trovare i tesori di perle più abbagliante. La vita è il tempo più prezioso, il più brillante di ricchezza, è quello di creare il più felicità, la più grande saggezza. vita più triste è pigro, la malattia più dolorosa, l'ignoranza è la più stupida, più riuscito è battuto ciglio - folle e aggressivo. Il mondo non è aggressivo, non sarà mai messa in ombra brillante, non c'è progresso nella vita, triste come anime perse. Nuvole bianche che galleggiano in cielo per sempre, simboleggia il grande orgoglio naturale puro, non aprire mai la terra con fiori, mostra il grande colorato umana. le persone intelligenti possono fallire come avere successo. Tutto nel mondo non durerà per sempre, solo la parte inferiore del linguaggio dell'anima sarà per sempre immortale. Sofferenze e le avversità nella lotta per la vita di grande ricchezza. La gente spesso parla di retorica alla moda, non sapendo che la giustizia non è di moda, e le lingue sono spesso dimenticati e disprezzati dal mondo è pieno di oro è proprio la verità, anche se spesso non lo fa cappotto Phi Dai Huali. le persone superficiali non sempre grande, solo un profondo uno può fare la differenza. Sia la bellezza del mondo, e, come il caos, questo è il mondo reale. La scienza e la verità sarà sempre il vincitore finale, anche se spesso viene sconfitto dal male e assurdo. Il male e l'assurdità può essere dilagante, ma alla fine non può durare a lungo. Nella storia del mondo prima del grande viale, Crossroads: andare a sinistra, probabilmente tutta la strada pianeggiante, subito, può essere modo pericoloso, a camminare, si può essere ancora in piedi, sordo e schiena significa la morte. La storia del mondo e creare una marcia di vittoria, non appartengono a persone timide e la saggezza di poco profonda mediocrità. Le onde del giro di mare contro le scogliere riva, con vista sul mare, trampolieri spiaggia, si dovrebbero spruzzare toccare, baciare il mare, questo oceano blu, sconfinato mondo naturale e il mondo umano il vero significato e di speranza. == == Heading text == == <code>Heading text</code> == == mpjkxo6m593smh2al6g5dic8x80ao4m User:Junedune401 2 375902 4668294 3118954 2026-09-03T13:31:26Z ShakespeareFan00 46022 4668294 wikitext text/x-wiki my name is <code>JUNE</code> and I fall in love often my interests: {{User blue}} {{User tamagotchi}} {{User chrome}} {{User bsod}} {{User pancakes}} {{User coke pepsi}} {{User civilization}} {{User European history}} {{User poetry}} {{User Ravenclaw}} {{User university}} {{User zodiac|aries}} {{User agf}} {{User mandatory sign-in}} {{User newcomer}} {{User please be nice}} ngecl1ciwmu6zf9gotbtbgjdenbdxbf Set Theory/Systems of sets 0 392138 4668418 3446215 2026-09-03T16:32:12Z DFRussia 320984 \Sigma for Dynkin is a subset of the powerset of Omega. 4668418 wikitext text/x-wiki In this chapter, we would like to study, for a given set <math>\Omega</math>, subsets of the power set <math>\mathcal P(\Omega)</math>. We consider in particular those subsets of <math>\mathcal P(\Omega)</math> that are closed under certain operations. {{definition|π-system|Let <math>\Omega</math> be a set. A '''<math>\pi</math>-system''' is a collection of sets <math>\mathcal A \subseteq \mathcal P(\Omega)</math> such that whenever <math>A, B \in \mathcal A</math>, then also <math>A \cap B \in \mathcal A</math>.}} {{definition|Dynkin system|Let <math>\Omega</math> be a set. A '''Dynkin system''' or <math>\lambda</math>-system is a collection of sets <math>\Sigma \subseteq P(\Omega)</math> such that the following three axioms hold: #<math>\Omega \in \Sigma</math> #<math>A, B \in \Sigma \Rightarrow A \setminus B \in \Sigma</math> #<math>A_1, A_2, \cdots \in \Sigma \wedge A_1 \subseteq A_2 \subseteq A_3 \subseteq \cdots \Rightarrow \bigcup_{n \in \mathbb N} A_n \in \Sigma</math>.}} {{definition|σ-algebra|Let <math>\Omega</math> be a set. A '''<math>\sigma</math>-algebra''' on <math>\Omega</math> is a collection of subsets of <math>\Omega</math>, say <math>\mathcal F \subseteq \mathcal P(\Omega)</math>, such that the following axioms are satisfied: #<math>\Omega \in \mathcal F</math> #<math>A, B \in \mathcal F \Rightarrow A \setminus B \in \mathcal F</math> #<math>A_n \in \mathcal F</math> for all <math>n \in \mathbb N</math> implies <math>\bigcup_{n \in \mathbb N} A_n \in \mathcal F</math>.}} Note that being a <math>\sigma</math>-algebra is a stronger requirement than being a Dynkin system: A <math>\sigma</math>-algebra is closed under all countable intersections, whereas a Dynkin system is only closed under intersections of countable ascending chains. {{definition|σ-algebra generated by a collection of sets|Let <math>\Omega</math> be a set, and let <math>\mathcal A \subseteq 2^\Omega</math>. Then we define :<math>\sigma(\mathcal A) := \bigcap_{\mathcal B \supset \mathcal A \atop \mathcal B \text{ is a } \sigma\text{-algebra}} \mathcal B</math>.}} {{definition|λ-system generated by a collection of sets|Let <math>\Omega</math> be a set, and let <math>\mathcal A \subseteq 2^\Omega</math>. Then we define :<math>\lambda(\mathcal A) := \bigcap_{\mathcal B \supset \mathcal A \atop \mathcal B \text{ is a } \lambda\text{-system}} \mathcal B</math>.}} {{theorem|Dynkin's λ-π theorem|Let <math>\Omega</math> be a set, and let <math>\mathcal A</math> be a <math>\pi</math>-system on <math>\Omega</math>. Then :<math>\sigma(\mathcal A) = \lambda(\mathcal A)</math>.}} {{proof|The direction "<math>\supseteq</math>" is clear, so that we only have to prove "<math>\supseteq</math>". To do so, we prove that <math>\lambda(\mathcal A)</math> is in fact a <math>\sigma</math>-algebra that contains <math>\mathcal A</math>, using the definition of <math>\sigma(\mathcal A)</math> as the intersection of all <math>\sigma</math>-algebrae that contain <math>\mathcal A</math>.}} == Exercises == #Let <math>\Omega</math> be a set, and let <math>\Sigma \subseteq \mathcal P(\Omega)</math>. Prove that <math>\Sigma</math> is a <math>\lambda</math>-system if and only if ##<math>\emptyset \in \Sigma</math> ##<math>A, B \in \Sigma \Rightarrow A \setminus B \in \Sigma</math> ##<math>A_1, A_2, \ldots \in \Sigma \wedge A_1 \supseteq A_2 \supseteq A_3 \supseteq \cdots \Rightarrow \bigcap_{n \in \mathbb N} A_n \in \Sigma</math>. #Let <math>\Omega</math> be a set, and let <math>\mathcal F \subseteq \mathcal P(\Omega)</math>. Prove that <math>\mathcal F</math> is a <math>\sigma</math>-algebra if and only if ##<math>\emptyset \in \mathcal F</math> ##<math>A, B \in \mathcal F \Rightarrow A \setminus B \in \mathcal F</math> ##<math>A_n \in \mathcal F</math> for all <math>n \in \mathbb N</math> implies <math>\bigcap_{n \in \mathbb N} A_n \in \mathcal F</math>. {{BookCat}} p1ii9n55l5gfj00o9eii3sep2t8ocwa Vehicle Identification Numbers (VIN codes)/KIA/VIN Codes 0 394028 4668448 4634595 2026-09-03T19:11:31Z JustTheFacts33 3434282 /* Kia WMIs (positions 1-3) */ 4668448 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea * 6 = Sohari plant, Gwangmyeong, South Korea * 7 = Gwangju, South Korea {{BookCat}} shiixuqdgb57zyhgighc27plmfv5bps 4668451 4668448 2026-09-03T19:17:38Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668451 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea * 6 = Sohari plant, Gwangmyeong, South Korea * 7 = Gwangju, South Korea {{BookCat}} bbbu6m7ok17o3sjw9mjvzcz1wzoncbn 4668457 4668451 2026-09-03T19:26:12Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668457 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea * 6 = Sohari plant, Gwangmyeong, South Korea * 7 = Gwangju, South Korea {{BookCat}} l9jzi17s9hn30q6mef596gzq5ape7kb 4668460 4668457 2026-09-03T19:28:52Z JustTheFacts33 3434282 /* Kia WMIs (positions 1-3) */ 4668460 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * KMX = Hyundai South Korea (Kia Carstar/Joice) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea * 6 = Sohari plant, Gwangmyeong, South Korea * 7 = Gwangju, South Korea {{BookCat}} mzdkr9x09g0p28sutg0xz5j869zp8nh 4668467 4668460 2026-09-03T19:44:01Z JustTheFacts33 3434282 /* Kia WMIs (positions 1-3) */ 4668467 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus or minibus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * KMX = Hyundai South Korea (Kia Carstar/Joice) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea * 6 = Sohari plant, Gwangmyeong, South Korea * 7 = Gwangju, South Korea {{BookCat}} hu8mxt5vlyk0ir47z9ibtn5fw26umjb 4668483 4668467 2026-09-03T20:11:16Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668483 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus or minibus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * KMX = Hyundai South Korea (Kia Carstar/Joice) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * A = Hwasung, South Korea (Used in S. Korea) * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * K = Gwangju, South Korea (Used in S. Korea) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * S = Sohari plant, Gwangmyeong, South Korea (Used in S. Korea) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea * 6 = Sohari plant, Gwangmyeong, South Korea * 7 = Gwangju, South Korea {{BookCat}} mmonpmdd7c2ueu4078bh6r3790uh22e 4668484 4668483 2026-09-03T20:21:53Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668484 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus or minibus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * KMX = Hyundai South Korea (Kia Carstar/Joice) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * A = Hwasung, South Korea (Used in S. Korea) * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * K = Gwangju, South Korea (Used in S. Korea) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * S = Sohari plant, Gwangmyeong, South Korea (Used in S. Korea) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea (Used in N. America, Europe) * 6 = Sohari plant, Gwangmyeong, South Korea (Used in N. America, Europe) * 7 = Gwangju, South Korea (Used in N. America, Europe) {{BookCat}} fixvzmac09amwu0xlcls5lazkgr4060 4668485 4668484 2026-09-03T20:27:23Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668485 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus or minibus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * KMX = Hyundai South Korea (Kia Carstar/Joice) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * A = Hwasung, South Korea (Used in S. Korea) * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * K = Gwangju, South Korea (Used in S. Korea) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * S = Sohari plant, Gwangmyeong, South Korea (Used in S. Korea) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) (Used in S. Korea, Europe) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea (Used in N. America, Europe) * 6 = Sohari plant, Gwangmyeong, South Korea (Used in N. America, Europe) * 7 = Gwangju, South Korea (Used in N. America, Europe) {{BookCat}} 3z637ewlcsd0lgxyf51rybsizgw89i2 4668544 4668485 2026-09-04T10:18:06Z JustTheFacts33 3434282 /* Manufacturing Plant Code (position 11) */ 4668544 wikitext text/x-wiki ==VIN format 1994-2009== KIA used the following VIN format and codes from the 1994-2009 model years. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |F |rowspan=2|[[#Vehicle Line|Sephia]] |- |5 |A |- |6 |1 |rowspan=2|[[#Body Style (& GVWR for MPVs)|4-door Sedan]] |- |7 |2 |- |8 |1 |[[#Engine Type/Restraint|Gas Engine 1.6 Liter B6E I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |R |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4-5)=== {| border=1 !VIN Code !Description |- |DC |Rio (2001-2005) |- |DE |Rio (2006-2009) |- |FA |Sephia (1994-1997) |- |FB |Sephia (1998-2001), Spectra (2000 - Mid-2004) |- |FE |Spectra (New Design) (Mid-2004 - 2009) |- |FG |Rondo (2007-2009) |- |GD |Optima/Magentis (2001 - Mid-2006) |- |GE |Optima/Magentis (New Design) (Mid-2006 - 2009) |- |LD |Amanti (2004-2009) |- |JA |Sportage 4x4 (1995-2002) |- |JB |Sportage 4x2 (1995-2002) |- |JC |Sorento 4x4 (2003-2009) |- |JD |Sorento 4x2 (2003-2009) |- |JE |Sportage 4x4 (2005-2009) |- |JF |Sportage 4x2 (2005-2009) |- |JH |Borrego 4x4 (2009) |- |JJ |Borrego 4x2 (2009) |- |MB |Sedona (2006-2009) |- |UP |Sedona (2002-2005) |} ===Body Style (& GVWR for MPVs) (position 6-7)=== {| border=1 !VIN Code !Description |- |12 |4-door sedan (1994-2008) |- |13 |1=Minivan (2002-2005 Sedona, 2007-2009 Sedona SWB). 3=GVWR: 5001 - 6000 lbs. |- |16 |5-door hatchback (2000-2008) |- |22 |4-door sedan (2009 Rio, Spectra, Optima, Amanti) |- |23 |2=Minivan - Extended length (2006-2009 Sedona LWB). 3=GVWR: 5001 - 6000 lbs. |- |24 |5-door hatchback (2009 Rio5, Spectra5) |- |52 |5-door wagon (2007-2009 Rondo) |- |62 |6=2-door SUV (Sportage 2-d). 2=4001 - 5000 lbs. |- |72 |7=4-door SUV (1995-2009 Sportage 4-d). 2=GVWR: 4001 - 5000 lbs. |- |73 |7=4-door SUV (2003-2009 Sorento). 3=GVWR: 5001 - 6000 lbs. |- |74 |7=4-door SUV (2009 Borrego). 4=GVWR: 6001 - 7000 lbs. |} GVWR=Gross Vehicle Weight Rating. MPV=Multi-Purpose Passenger Vehicle. ===Engine Type/Restraint (position 8)=== *1 = 1.6 Liter B6-E SOHC I4 (Sephia 1994-1995)/Automatic Belts *1 = 1.8 Liter T8D DOHC I4 (Sephia [SD] 1998-01, Spectra [SD] 2000 - Mid-2004)/Airbags *1 = 2.0 Liter DOHC Beta-II G4GC ULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *1 = 2.0 Liter FE SOHC I4 (Sportage 1995) *1 = 3.5 Liter DOHC Sigma G6CU V6 (Sedona [GQ] 2002-2004)/Airbags *1 = 3.5 Liter DOHC Sigma G6CU Federal emissions V6 (Sedona [GQ] 2005)/Airbags *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC SULEV-certified I4 (Spectra [LD] Mid-2004 - 2009)/Airbags *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2005-2009)/Airbags *2 = 3.5 Liter DOHC Sigma G6CU California emissions V6 (Sedona [GQ] 2005)/Airbags *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2009)/Airbags *3 = 1.6 Liter B6-D DOHC I4 (Sephia 1995)/Automatic Belts *3 = 2.0 Liter FE DOHC I4 (Sportage 1995-2002) *3 = 1.5 Liter B5-DE DOHC I4 (Rio 2001-2002)/Airbags *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2006-2009)/Airbags *3 = 2.4 Liter DOHC Theta G4KC I4 (Optima/Magentis [MG] Mid-2006 - 2008)/Airbags *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2005-2009)/Airbags *3 = 3.5 Liter DOHC Sigma G6CU V6 (Sorento [BL] 2003-2006)/Airbags *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2006-2009)/Airbags *4 = 1.6 Liter B6-D DOHC I4 (Sephia 1996-1997)/Airbags *4 = 2.5 Liter DOHC Delta G6BV V6 (Optima/Magentis [MS] 2001)/Airbags *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] Mid-2006 - 2009)/Airbags *4 = 3.5 Liter DOHC Sigma G6CU V6 (Amanti [GH] 2004-2006)/Airbags *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2005-2009)/Airbags *5 = 1.8 Liter BP DOHC I4 (Sephia 1995-1997)/Airbags *5 = 1.6 Liter B6 DOHC I4 (Rio 2003-2005)/Airbags *5 = 2.4 Liter DOHC Theta G4KC I4 (Rondo [UN] 2007-2008)/Airbags *5 = 3.8 Liter DOHC Lambda G6DA V6 (Amanti [GH] 2007-2009)/Airbags *5 = 3.3 Liter DOHC Lambda G6DB V6 (Sorento [BL] 2007-2009)/Airbags *6 = 2.4 Liter Sirius II DOHC I4 (Optima/Magentis [MS] 2001 - Mid-2006)/Airbags *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2007-2009)/Airbags *6 = 3.8 Liter DOHC Lambda G6DA V6 (Sorento [BL] 2007-2009)/Airbags *8 = 2.7 Liter DOHC Delta G6BA V6 (Optima/Magentis [MS] 2002 - Mid-2006)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2009)/Airbags *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2009)/Airbags *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2009)/Airbags ==VIN format Since 2010== KIA has used the following VIN format and codes since the 2010 model year. {|border=1 style="margin:auto;" !Position!!Sample!!Description |- |1-3 |KNA |[[#Kia WMIs (positions 1-3)|KIA]] |- |4 |G |[[#Vehicle Line 2|Optima]] |- |5 |G |[[#Model & Series|Base Trim Level (LX)]] |- |6 |4 |[[#Body Style - Passenger Cars|4-door Sedan]] |- |7 |A |[[#Restraint|Both Side - Active seat belts with front pretensioners, Front Airbags, Front Side Airbags, Side Curtain Airbags]] |- |8 |8 |[[#Engine Type (position 8)|Gas Engine 2.4 Liter Theta II I4]] |- |9 |2 |[[Vehicle Identification Numbers (VIN codes)/Check digit|Check digit]] |- |10 |A |[[Vehicle Identification Numbers (VIN codes)/Model year|Model year]] |- |11 |5 |[[#Manufacturing Plant Code (position 11)|Hwasung plant (South Korea)]] |- |12 |6 |rowspan=6|Sequential number |- |13 |1 |- |14 |4 |- |15 |0 |- |16 |2 |- |17 |8 |} ===Vehicle Line (position 4)=== {| border=1 !VIN Code !Description |- |A |Rio (2018-2023, Mexican-built) |- |A |EV9 (2024-) |- |C |Niro (2017-) |- |C |EV6 (2022-) |- |D |Rio (2010- , Korean-built) |- |E |Stinger (2018-2023) |- |E |Seltos (2021-) |- |F |Forte (2010-2024), K4 (2025-) |- |G |Optima (2010-2020), Magentis (2010), K5 (2021-) |- |H |Rondo (2010-2017) |- |J |Soul (2010-2025) |- |K |Borrego/Mohave (2010-2011 [Canada]) |- |K |Sorento (2011-2015) |- |K |Sportage (2010) |- |K |Sportage (2023- , US-built) |- |L |Cadenza (2014-2020) |- |L |K900/K9/Quoris (2013-2018) |- |M |Sedona (2010-2021) |- |N |Carnival (2022-) |- |P |Sportage (2011- , Korean-built) |- |P |Sorento (2016-2020) |- |P |Telluride (2020-2025, 2027-) |- |R |Sorento (2021-) |- |S |K900/K9/Quoris (2019-2020 [USA]) |} ===Body Style - Passenger Cars (position 6)=== {| border=1 !VIN Code !Description |- |4 |4-door sedan |- |5 |5-door hatchback (Rio 5-door, Forte 5-door, K4 5-door, Stinger) |- |6 |2-door coupe |- |8 |5-door wagon (2010-2017 Rondo) |} ===Body Style/Drive Wheels/Weight Class - Multi-Purpose Passenger Vehicle (position 6)=== {| border=1 !VIN Code !Description |- |2 |Wagon 4x2 Class B |- |3 |Wagon 4x2 Class C |- |4 |Wagon 4x2 Class D |- |5 |Wagon 4x2 Class E |- |C |Wagon 4x4 Class C |- |D |Wagon 4x4 Class D |- |E |Wagon 4x4 Class E |- |F |Wagon 4x4 Class F |} ===Restraint System or GVWR (position 7)=== *A = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags *D = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags *J = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag *K = Manual belts, Dual front airbags & front side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag *L = Manual belts, Dual front airbags & front side airbags & 2-row side curtain airbags & driver-side knee airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 2-row side curtain airbags & driver-side knee airbag & front center airbag *S = Manual belts, Dual front airbags & front side airbags & rear side airbags & 3-row side curtain airbags & driver-side knee airbag & front center airbag (EV9) ===Engine Type (position 8)=== *1 = 1.6 Liter DOHC Gamma G4FC I4 (Soul [AM] 2010-2011) *1 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Optima [JF] 2016-2020) *1 = 2.4 Liter DOHC Theta-II G4KE I4 (Sorento [XM] 2011-2013) *1 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sorento [UM] 2016-2018) *1 = 3.8 Liter DOHC Lambda G6DA V6 (Borrego [HM] 2010-2011) (Canada) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sedona [YP] 2015-2021) *1 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [YG] 2017-2020) *1 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP 4-cyl. (Telluride [LQ2] 2027-) *1 = Electric motor (201hp) (64 kWh/180.9Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *1 = Electric motor (201hp) (64.8 kWh/180.9Ah Battery) (Niro EV [SG2] 2023-) *1 = Electric motor (201hp) (99.8 kWh/180.9Ah Battery) (EV9 RWD [MV1] 2024-) *2 = 2.0 Liter DOHC Beta-II G4GC I4 (Soul [AM] 2010-2011) *2 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [PS] 2014-2019) *2 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Seltos [SP2] 2021-2023) *2 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K5 [DL3] 2021-2024) *2 = 2.0 Liter DOHC Theta-II G4KD I4 (Forte [TD] 2010-2013) *2 = 2.0 Liter DOHC Beta-II G4GC Federal emissions I4 (Sportage [KM] 2010) *2 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [JF] 2016-2020) *2 = 2.4 Liter DOHC Theta-II G4KE I4 (Sportage [SL] 2011-2013) *2 = 3.5 Liter DOHC Lambda II G6DC V6 (Sorento [XM] 2011-2013) *2 = 4.6 Liter DOHC Tau G8BA V8 (Borrego [HM] 2010-2011) (Canada) *2 = Electric motor (134hp) (39.2 kWh/120Ah Battery) (Soul EV [SK3] 2020-2023) (Canada) *2 = Electric motor (215hp) (76.1 kWh/120.6Ah Battery) (EV9 RWD [MV1] 2024-) *3 = 1.6 Liter DOHC Alpha-II G4ED I4 (Rio [JB] 2010-2011) *3 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [UB] 2012-2017) *3 = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [YD] 2014-2018) *3 = 2.4 Liter DOHC Theta-II G4KE I4 (Forte [TD] 2010-2013) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [JF] 2016-2020) *3 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [UM] 2016-2020) *3 = 2.7 Liter DOHC Delta G6BA V6 (Sportage [KM] 2010) *3 = 2.0 Liter DOHC GDI Nu G4NC I4 (Rondo [RP] 2014-2017) (Canada) *3 = 3.8 Liter DOHC Lambda G6DA V6 (Sedona [VQ] 2010) *3 = 3.8 Liter DOHC GDI Lambda II RS G6DJ V6 (K900 [KH] 2015-2018) *3 = 3.5 Liter DOHC GDI Smartstream G3.5 Lambda III G6DT V6 (Carnival [KA4] 2022-) *4 = 2.7 Liter DOHC Mu G6EA V6 (Optima/Magentis [MG] 2010) *4 = 2.0 Liter DOHC Beta-II G4GC California emissions I4 (Sportage [KM] 2010) *4 = 5.0 Liter DOHC GDI Tau G8BE V8 (K900 [KH] 2015-2018) *5 = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Soul [AM] 2012-2013) *5 = 2.0 Liter DOHC GDI Nu G4NC I4 (Soul [PS] 2014-2019) *5 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [UM] 2016-2020) *5 = Electric motors (379hp) (99.8 kWh/180.9Ah Battery) (EV9 AWD [MV1] 2024-) *6 = 1.8 Liter DOHC Nu G4NB I4 (Forte [YD] 2014-2016) *6 = 2.0 Liter DOHC Nu G4NA I4 (Soul [AM] 2012-2013) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Optima [TF/QF] 2011-2015) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [SL] 2011-2016) *6 = 2.0 Liter DOHC turbocharged GDI Theta-II G4KH I4 (Sportage [QL] 2017-2022) *6 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sorento [XM] 2012-2015) *6 = 2.7 Liter DOHC Mu G6EA V6 (Rondo [UN] 2010-2012) (Canada) *6 = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (K900 [RJ] 2019-2020) *7 = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (Seltos [SP2] 2024-) *7 = 2.0 Liter DOHC Nu G4NH I4 (Forte [YD] 2017-2018) *7 = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Optima [TF/QF] 2011-2015) *7 = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (K5 [DL3] 2025-) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Cadenza [VG] 2014-2016) *7 = 3.3 Liter DOHC GDI Lambda II G6DH V6 (Sorento [XM] 2014-2015) *7 = 3.5 Liter DOHC Lambda II G6DC V6 (Sedona [VQ] 2011-2014) *8 = 2.0 Liter DOHC GDI Nu G4NC I4 (Forte [YD] 2014-2018) *8 = 2.4 Liter DOHC Theta-II G4KE I4 (Optima/Magentis [MG] 2010) *8 = 2.4 Liter DOHC Theta-II G4KE ULEV-certified I4 (Rondo [UN] 2010-2012) (Canada) *8 = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (K5 [DL3] 2021-) *9 = 2.4 Liter DOHC Theta-II G4KE SULEV-certified I4 (Rondo [UN] 2010) (Canada) *A = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [PS] 2017-2019) *A = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Carnival Hybrid [KA4] 2025-) *A = 2.0 Liter DOHC Nu G4NH I4 (Seltos [SP2] 2021-) *A = 2.0 Liter DOHC turbocharged GDI Theta-II G4KL I4 (Stinger [CK] 2018-2021) *A = Electric motor (225hp) (77.4 kWh Battery) (EV6 RWD [CV] 2022-2024) *A = Electric motor (225hp) (84 kWh Battery) (EV6 RWD [CV] 2025-) *A = 2.5 Liter DOHC turbocharged GDI Smartstream G2.5T Theta-III G4KS 4-cyl. + 17 hp electric motor (P1) + 72 hp electric motor (P2) (1.65 kWh/5.5Ah Battery) (Telluride Hybrid [LQ2] 2027-) *B = 1.6 Liter DOHC GDI Gamma-II G4FD I4 (Rio [YB] 2018-2019) *B = Electric motor (167hp) (58 kWh Battery) (EV6 RWD [CV] 2022-2024) *B = Electric motor (167hp) (63 kWh Battery) (EV6 RWD [CV] 2025-) *C = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Hybrid [DE] 2017-2022) *C = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Forte [BD] 2020-2024) *C = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FP I4 (K4 [CL4] 2025-) *C = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.0Ah Battery) (Optima Hybrid [JF] 2017) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [SL] 2014-2016) *C = 2.4 Liter DOHC GDI Theta-II G4KJ I4 (Sportage [QL] 2017-2022) *C = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sorento [MQ4] 2021-) *C = 3.3 Liter DOHC twin-turbocharged GDI Lambda II RS G6DP V6 (Stinger [CK] 2018-2023) *C = 3.8 Liter DOHC GDI Lambda II G6DN V6 (Telluride [ON] 2020-2025) *C = Electric motors (320hp) (77.4 kWh Battery) (EV6 AWD [CV] 2022-2024) *C = Electric motors (320hp) (84 kWh Battery) (EV6 AWD [CV] 2025-) *D = 1.6 Liter DOHC GDI Kappa-II G4LE I4 + Electric (Niro Plug-in Hybrid [DE] 2018-2022) *D = 1.6 Liter DOHC Gamma-II G4FG I4 (Rio [YB] 2020-) *D = 2.0 Liter DOHC Nu G4NH I4 (Forte [BD] 2019-2024) *D = 2.4 Liter DOHC Theta-II G4KK I4 + Electric (Optima Hybrid [TF] 2011-2016) *D = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (27.2Ah Battery) (Optima Plug-in Hybrid [JF] 2017-2020) *D = 2.5 Liter DOHC turbocharged GDI Smartstream FR G2.5T Theta-III G4KR I4 (Stinger [CK] 2022-2023) *E = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (Niro Hybrid [SG2] 2023-) *E = 2.0 Liter DOHC GDI Nu G4NG I4 + Electric (6.5Ah Battery) (Optima Hybrid [JF] 2017-2020) *E = 2.0 Liter DOHC Smartstream G2.0 (Nu PE) G4NS I4 (K4 [CL4] 2025-) *E = Electric motor (109hp) (Soul EV [PSEV] 2015-2019) *E = Electric motors (460/576hp) (77.4 kWh Battery) (EV6 GT AWD [CV] 2022-2024) *E = Electric motors (601/641hp) (84 kWh Battery) (EV6 GT AWD [CV] 2025-) *F = 1.6 Liter DOHC turbocharged GDI Gamma-II G4FJ I4 (Soul [SK3] 2020-2022) *F = 1.6 Liter DOHC GDI Smartstream G1.6 G4LL I4 + Electric (11.1 kWh/30.8Ah Battery) (Niro Plug-in Hybrid [SG2] 2023-2025) *F = 2.5 Liter DOHC DPI Smartstream G2.5 Theta-III G4KN I4 (Sportage [NQ5] 2023-) *F = 2.5 Liter DOHC turbocharged DPI Smartstream G2.5T Theta-III G4KP I4 (Sorento [MQ4] 2021-) *G = Electric motor (201hp) (64kWh/180Ah Battery) (Niro EV [DE] 2019-2022) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sportage Hybrid [NQ5] 2023-) *G = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (Sorento Hybrid [MQ4] 2021-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sportage Plug-in Hybrid [NQ5] 2023-) *H = 1.6 Liter DOHC turbocharged GDI Smartstream G1.6T G4FT I4 + Electric (13.8kWh/38.3Ah Battery) (Sorento Plug-in Hybrid [MQ4] 2022-) *U = 2.0 Liter DOHC Nu G4NH I4 (Soul [SK3] 2020-2025) GDI=Gasoline Direct Injection, DPI=Dual Port Injection (Direct & Port Injection), Ah=Amp-hour, Kwh=Kilowatt-hour ==Kia WMIs (positions 1-3) == * KNA = Kia South Korea (passenger car) * KNC = Kia South Korea (truck) * KND = Kia South Korea (multi-purpose vehicle) * KNE = Kia South Korea (passenger car - Europe export thru 2009) * KNG = Kia South Korea (bus or minibus) * KNL = Kia South Korea (Elan/Vigato made by Kia Motech) * KMX = Hyundai South Korea (Kia Carstar/Joice) * LJD = Jiangsu Yueda Kia Motors Co., Ltd. (formerly Dongfeng Yueda Kia) * MZB = Kia India Pvt Ltd. * PNA = Kia made by Naza in Malaysia * TMA = Kia made by Hyundai Motor Manufacturing Czech * U5Y = Kia Motors Slovakia * U6Y = Kia Motors Slovakia (multi-purpose vehicle) * XTK, XWK = Kia made by Izh Avto * XWE = Kia made by Avtotor * Z94 = Kia made by Hyundai Motor Manufacturing Rus * 3KP = Kia Motor Manufacturing Mexico (Passenger Vehicle) * 5XX = Kia Motor Manufacturing Georgia (Passenger Vehicle) * 5XY = Kia Motor Manufacturing Georgia (Multi-Purpose Passenger Vehicle) * 7YA = Kia (Multi-Purpose Passenger Vehicle made by Hyundai Motor Group Metaplant America) * 8LG = Kia made by Aymesa in Ecuador * 9UW = Kia made by Nordex in Uruguay ==Manufacturing Plant Code (position 11)== * A = Ansan, South Korea (Kia Motech plant) [Kia Elan/Vigato] * A = Hwasung, South Korea (Used in S. Korea) * E = Pesqueria, Nuevo Leon, Mexico * G = West Point, Georgia, USA * H = Gwangju, South Korea (Used in S. Korea) * J = Nošovice, Czech Republic (WMI code: TMA) (Hyundai plant) * K = Gwangju, South Korea (Used in S. Korea) * L = Žilina, Slovakia * N = Anantapur, Andhra Pradesh, India * R = Saint Petersburg, Russia (Hyundai plant) * S = Sohari plant, Gwangmyeong, South Korea (Used in S. Korea) * T = Seosan, South Korea (Donghee Auto Co. Ltd. plant) (Used in S. Korea, Europe, Middle East) * U = Ulsan, South Korea (Hyundai plant) [Kia Carstar/Joice] * Y = Ellabell, Georgia, USA (Hyundai Motor Group Metaplant America) (HMGMA) * 0 = Yangcheng, Jiangsu, China (Jiangsu Yueda Kia Motors Co., Ltd. plant) * 5 = Osnabrück, Germany (Karmann plant, WMI code: KNE) * 5 = Hwasung, South Korea (Used in N. America, Europe, Middle East) * 6 = Sohari plant, Gwangmyeong, South Korea (Used in N. America, Europe, Middle East) * 7 = Gwangju, South Korea (Used in N. America, Europe, Middle East) {{BookCat}} ly0gyn1ao0bofu5f0igdndlyi6nzpas User talk:103.92.117.18 3 404527 4668243 3507890 2026-09-03T12:22:24Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668243 wikitext text/x-wiki == Blocked == <div style="padding:5px; border:1px solid #A9A9A9; background-color:#FFEFD5;{{Text default color}}; min-height:40px;">[[File:Stop x nuvola with clock.svg|40px|left|link=]] '''[[Wikibooks:Blocking policy|You cannot edit]] for 6 months due to disruptive editing'''. You are welcome to contribute constructively when editing privileges are restored. You may appeal this action with a reasonable argument by adding the text <!-- Copy the text as it appears on your page, not as it appears in this edit area. Do not include the "tlx" argument. -->{{tlx|unblock|Your reason here}} below. </div><!-- Template:blocked --> --[[User:Atcovi|Atcovi]] [[User talk:Atcovi|(Talk]] - [[Special:Contributions/Atcovi|Contribs)]] 22:56, 6 January 2019 (UTC) fbuaxgcm0ab00knn7vtblk3dy8yznuw Wildlife Gardening/Evaluation tables/Herbs/Northeastern United States 0 411511 4668496 4469403 2026-09-04T03:23:28Z Krok6kola 2720781 ([[c:GR|GR]]) [[c:COM:FR|File renamed]]: [[File:Waldsteinia fragarioides 01.JPG]] → [[File:Waldsteinia ternata 001.jpg]] [[c:COM:FR#FR3|Criterion 3]] (obvious error) · Species misidentification. The specimen featured in this image displays the large, broad, rounded yellow flower petals that tightly overlap to create a bowl shape, along with aggressively and deeply lobed, sharp wedge-like foliage. These are the diagnostic taxonomic keys of the Eurasian Waldsteinia ternata, completely contradic... 4668496 wikitext text/x-wiki ME NH VT MA CT RI NY NJ PA MD DE WV VA Aconitum uncinatum File:Aconitum uncinatum illustration.jpg pollen nectar summer flowers fall flowers native bees Actaea pachypoda File:Actaea-pachypoda.jpg pollen nectar spring flowers native bees Agastache scrophulariifolia File:Agastache scrophulariifolia.jpg pollen nectar winter bird food summer flowers excellent for pollinators finches eat seeds Agrimonia parviflora File:Agrimonia parviflora - Harvestlice.jpg Amsonia tabernaemontana File:Amsonia nadrenska Amsonia tabernaemontana.jpg - not in WV pollen nectar spring flowers colorful autumn foliage deciduous ground cover good nectar plant for butterflies Anemone canadensis File:Anemone canadensis kz01.jpg wildlife cover pollen nectar spring flowers deciduous ground cover pollinator friendly Aquilegia canadensis File:Birds and nature (1900) (14775163513).jpg pollen nectar spring flowers deciduous ground cover excellent hummingbird plant Arisaema triphyllum File:Jack-in-the-Pulpit (4751254398).jpg winter bird food mammal food spring flowers birds mammals disperse seeds Aruncus dioicus File:Kitseenelas 1.jpg pollen nectar spring flowers excellent for pollinators Asclepias incarnata pollen nectar caterpillar host plant summer flowers fragrant monarch host Asclepias tuberosa pollen nectar caterpillar host plant summer flowers fragrant monarch host Aster divaricatus File:Eurybia divaricata SCA-04316.jpg pollen nectar caterpillar host plant summer flowers fall flowers deciduous ground cover hosts 109 caterpillar species Aster latiflorus File:Symphyotrichum lateriflorum FWS-2.jpg pollen nectar caterpillar host plant summer flowers fall flowers deciduous ground cover hosts 109 caterpillar species Aster novae-angliae pollen nectar caterpillar host plant summer flowers fall flowers deciduous ground cover hosts 109 caterpillar species Aster oblongifolius File:Aromatic Aster - Aster oblongifolius - 2.jpg pollen nectar caterpillar host plant summer flowers fall flowers deciduous ground cover hosts 109 caterpillar species Aster puniceus File:Symphyotrichum puniceum flowers.jpg pollen nectar caterpillar host plant summer flowers fall flowers deciduous ground cover hosts 109 caterpillar species Aster spectabilis File:Eurybia spectabilis kz4.jpg - not in WV pollen nectar caterpillar host plant summer flowers deciduous ground cover hosts 109 caterpillar species Astilbe biternata File:Tawułki 02.jpg pollen nectar spring flowers summer flowers deciduous ground cover attracts butterflies Baptisia australis File:Baptisia australis kz01.jpg caterpillar host spring flowers host for wild indigo duskywing and southern dogface butts Boltonia asteroides File:Boltonia asteroides Nana 4zz.jpg- not in WV pollen nectar summer flowers excellent for fall pollinators Cardamine concatenata File:Cardamine concatenata Radnor Lake.jpg pollen nectar spring flowers spring ephemeral native bees Chelone glabra File:Chelone glabra Red River Gorge.JPG summer flowers fall flowers host for Baltimore checkerspot Chrysopis mariana File:Chrysopsis mariana - Maryland Golden Aster.jpg pollen nectar summer flowers fall flowers good for pollinators likes sandy soil Cimicifuga racemosa File:Actaea racemosa 005.JPG pollen nectar summer flowers fragrant excellent source of pollen and nectar in shady conditions Coreopsis rosea- not in WV File:Coreopsis rosea.jpg pollen nectar spring flowers summer flowers decidious ground cover good spring forage for pollinators Coreopsis lanceolata pollen nectar spring flowers summer flowers deciduous ground cover good spring forage for pollinators Coreopsis verticillata File:Coreopsis verticillata flowering 001.JPG pollen nectar spring flowers summer flowers decidious ground cover good spring forage for pollinators Dicentra cucullaria File:Dicentra cucullaria WFNY-078k.jpg mammal food spring flowers rodents love tubers Dicentra eximia File:Dollyflowers1 ForestWander.JPG mammal food spring flowers deciduous ground cover rodents love tubers Erythronium americanum File:Erythronium americanum (yellow dogtooth violet; yellow trout lily) (Glen Echo Ravine, Columbus, Ohio, USA) 1 (33788488412).jpg pollen nectar spring flowers DGC pollinator friendly spring ephemeral Eupatorium coelestinum File:Eupatorium coelestinum1.jpg pollen nectar summer flowers fall flowers DGC supports 41 species of caterpillar Eupatorium dubium File:Gardenology.org-IMG 1435 bbg09.jpg pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Eupatorium fistulosum pollen nectar pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Eupatorium hyssopifolium File:Eupatorium hyssopifolium - Hyssop leaf Boneset.jpg pollen nectar pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Eupatorium perfoliatum File:Eupatorium perfoliatum 0001.JPG pollen nectar pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Eupatorium rotundifolium File:Eupatorium rotundifolium.jpg pollen nectar pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Eupatorium rugosum File:Eupatorium-rugosum-flowers.JPG pollen nectar pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Eupatorium serotinum File:Eupatorium serotinum kz02.jpg pollen nectar pollen nectar pollen nectar summer flowers DGC supports 41 species of caterpillar Filipendula rubra File:Meadow sweet (8065558634).jpg pollen nectar summer flowers DGC butterflies and hummingbirds Euphorbia corollata File:Euphorbia corollata kz01.jpg pollen nectar spring flowers summer flowers DGC pollinator friendly Geranium maculatum File:Zindel Park Trails (9) (34133664694).jpg pollen nectar spring flowers DGC supports early season native bees Helenium autumnale pollen nectar summer flowers fall flowers Helianthus angustifolius File:Helianthus angustifolius 2.jpg pollen nectar winter bird food bird breeding food fall migrating bird food mammal food caterpillar host plant summer flowers fall flowers DGC supports 75 species of caterpillar Heliopsis helianthoides File:False Yellow Sunflower Bunch PLT-FL-DS-10.jpg pollen nectar winter bird food summer flowers DGC midsummer pollenators Heuchera americana File:Heuchera americana Green spice.jpg wildlife cover spring flowers DGC good ground cover Hibiscus moscheutos File:Swamp Rosemallow (Hibiscus moscheutos) (20427271442).jpg pollen nectar caterpillar host plants summer flowers DGC hosts 20 species of caterpillars Iris versicolor- not in WV File:Iris versicolor quebec 2.jpg wildlife cover spring flowers DGC wet areas Jeffersonia diphylla File:Twinleaf - Jeffersonia diphylla, Carderock Park, Carderock, Maryland - 17061028111.jpg wildlife cover spring flowers DGC dense groundcover in shade Lespedeza virginica File:Lespedeza virginica - Slender lespedeza.jpg wildlife cover pollen nectar winter bird food mammal food caterpillar host plant summer flowers DGC pollinator plant that serves as host for several skippers Liatris spicata pollen nectar winter bird food caterpillar host plant summer flowers DGC excellent butterfly nectar larval host for camouflaged looper Lobelia cardinalis File:Lobelia cardinalis Belize 2.jpg pollen nectar summer flowers fall flowers DGC one of the best plants for hummingbirds Lobelia siphilitica File:Lobelia-syphilitica-habitus.JPG pollen nectar summer flowers fall flowers DGC one of the excellent plants for hummingbirds and sphinx moths Ludwigia alternifolia File:Ludwigia alternifolia - Squarepod waterprimrose.jpg pollen nectar summer flowers DGC wetland plant Lysimachia ciliata File:Lysimachia ciliata WFNY-162.jpg pollen nectar summer flowers DGC shade tolerant pollinator plant Mertensia virginica File:Mertensia virginica (Flower).jpg wildlife cover pollen nectar spring flowers DGC cover in wet areas excelltn hummingbird plant Mimulus ringens File:Mimulus ringens - Allegheny monkey flower.jpg pollen nectar caterpillar host plant summer flowers DGC common buckeye host Monarda didyma File:BeeBalm.jpg wildlife cover birds nest pollen nectar summer flowers DGC excellent butterfly and hummingbird plant Oenothera fruticosa File:Oenothera fruticosa subsp glauca.JPG pollen nectar winter bird food spring flowers summer flowers DGC valuable for native bees Packera aurea File:Flickr - Nicholas T - Shenks Ferry Wildflower Preserve (2).jpg Penstemon digitalis pollen nectar spring flowers summer flowers DGC Phlox maculata wildlife cover pollen nectar summer flowers DGC nectar for hummingbird sphinx moths Phlox paniculata File:02014.08 Blumen in Sanok.JPG wildlife cover pollen nectar summer flowers DGC nectar for hummingbird sphinx moths Polemonium reptans File:Polemonium reptans 001.JPG wildlife cover pollen nectar spring flowers DGC Polygonatum commutatum File:Polygonatum biflorum 1392157.jpg wildlife cover pollen nectar spring flowers Pycnanthemum muticum File:Gardenology.org-IMG 2846 rbgs11jan.jpg wildlife cover pollen nectar summer flowers DGC "superior" pollen nectar source for bees and butts Pycnanthemum tenuifolium File:Pycnanthemum tenuifolium 001.JPG wildlife cover pollen nectar summer flowers DGC "superior" pollen nectar source for bees and butts Ratibida pinnata File:Ratibida pinnata (2).jpg pollen nectar winter bird food summer flowers good for pollinators and winter birds Rudbeckia fulgida File:Rudbeckia hirta (4991283669).jpg pollen nectar winter bird food summer flowers DGC good for pollinators and winter birds Rudbeckia laciniata File:Kępa kwiatu 534.jpg pollen nectar winter bird food summer flowers DGC good for pollinators and winter birds Rudbeckia nitida- not in wv File:Rudbeckia herbstonne 1zz.jpg pollen nectar winter bird food summer flowers DGC good for pollinators and winter birds Salvia lyrata File:Salvia lyrata - Lyreleaf Sage 2.jpg wildlife cover pollen nectar spring flowers DGC hummingbirds and butterflies Sedum ternatum File:Sedum ternatum - Three leaved Stonecrop 2.jpg pollen nectar spring flowers evergreen ground cover Senna hebecarpa File:Senna hebecarpa WFNY-104.jpg pollen nectar winter bird food caterpillar host plant summer flowers DGC larval host for several sulphur butterfly species Silene virginica File:Silene virginica (18683679169).jpg pollen nectar winter bird food spring flowers Sisyrinchium angustifolium File:Sisyrinchium angustifolium 06.JPG wildlife cover spring flowers DGC dense groundcover Solidago caesia File:Solidago caesia001.jpg wildlife cover birds nest pollen nectar winter bird food caterpillar host plant summer flowers fall flowers DGC "excellent" meadow plant hosts 115 species of caterpillar Solidago canadensis File:Solidago canadensis vallee-de-grace-amiens 80 21072007 3.jpg wildlife cover birds nest pollen nectar winter bird food caterpillar host plant summer flowers DGC "excellent" meadow plant hosts 115 species of caterpillar Solidago graminifolia File:Euthamia graminifolia 001.JPG wildlife cover birds nest pollen nectar winter bird food caterpillar host plant summer flowers DGC "excellent" meadow plant hosts 115 species of caterpillar Solidago rugosa File:Solidago rugosa.jpg wildlife cover birds nest pollen nectar winter bird food caterpillar host plant summer flowers fall flowers DGC "excellent" meadow plant hosts 115 species of caterpillar Solidago speciosa File:Showy goldenrod plant solidago speciosa.jpg wildlife cover birds nest pollen nectar winter bird food caterpillar host plant summer flowers fall flowers DGC "excellent" meadow plant hosts 115 species of caterpillar Verbena hastata File:Verbena hastata 0002.JPG pollen nectar summer flowers DGC wetland plant Vernonia noveboracensis pollen nectar winter bird food summer flowers DGC important pollinator plant for damp soils Veronicastrum virginicum File:U.S. Botanic Garden in July (23687511012).jpg pollen nectar spring flowers summer flowers DGC ==Ferns== {| class="wikitable sortable" align="center" width="100%" |- ! colspan=8|Native herbs of West Virginia |- ! Taxon ! Amphibians and fishes ! Birds ! Mammals ! Reptiles ! Invertebrates ! Plants and fungi ! scope="col" class="unsortable" | Notes |- | <!-- Taxon --> [[File:Adiantum pedatum (homeredwardprice) 001.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Adiantum pedatum}}''''', the northern maidenhair fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. deciduous groundcover. suitable for shady moist sites. |- | <!-- Taxon --> [[File:Athyrium filix-femina0.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Athyrium filix-femina}}''''', the common lady-fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. deciduous groundcover. suitable for shady moist sites. |- | <!-- Taxon --> [[File:Dennstaedtia punctilobula1.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Denstaedtia punctilobula}}''''', the eastern hayscented fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. deciduous groundcover. suitable for shady moist sites. suitable for "impoverished" and very acidic sites. |- | <!-- Taxon --> [[File:Onoclea sensibilis-IMG 9787.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Onoclea sensibilis}}''''', the sensitive fern or bead fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. deciduous groundcover. grows well around ponds and streams. |- | <!-- Taxon --> [[File:Osmundastrum cinnamomeum May2015.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Osmundastrum cinnamomeum}}''''', the cinnamon fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. deciduous groundcover. grows well around ponds and streams. |- | <!-- Taxon --> [[File:OsmundaRegalis.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Osmunda regalis}}''''', the royal fern or flowering fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. deciduous groundcover. grows well around ponds and streams. |- | <!-- Taxon --> [[File:Christmas Fern Polystichum acrostichoides Plant 2000px.JPG|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Polystichum acrostichoides}}''''', the Christmas fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. evergreen groundcover. provides excellent groundcover for animals. |- | <!-- Taxon --> [[File:Thelypteris noveboracensis kz2.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Thelypteris noveboracensis}}''''', the New York fern.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. birds nest. evergreen groundcover. provides excellent groundcover for animals. |- |} Ferns- all wv * Adiantum pedatum * Athyrium filix-femina * Denstaedtia punctilobula * Onoclea sensibilis * Osmunda cinnamomea * Osmunda regalis * Polystichum acrostichoides * Thelypteris noveboracensis ==Forbs== {| class="wikitable sortable" align="center" width="100%" |- ! colspan=8|Native herbs of the northeastern United States |- ! Taxon ! Amphibians and fishes ! Birds ! Mammals ! Reptiles ! Invertebrates ! Plants and fungi ! scope="col" class="unsortable" | Notes |- | <!-- Taxon --> [[File:Asclepias tuberosa-roadside.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Asclepias tuberosa}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bees and serves as a host for {{WLG link|Taxon|Danaus plexippus|monarch butterfly}} caterpillars.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Baptisia tinctoria (Curtis-w).png|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Baptisia tinctoria}}''''', the wild indigo. Flowers illustrated.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG very beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG favorable}} | <!-- Notes --> Fixes nitrogen for other plants and attracts ''{{WLG link|Taxon|Automeris io}}'' among many other pollinators.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Cirsium discolor (3254496380).jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Cirsium discolor}}''''', the field thistle.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bumblebees and butterflies.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Coreopsis FR 2012.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Coreopsis lanceolata}}''''', the lanceleaf coreopsis. Flower pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bees and hoverflies.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Purple Coneflower (Echinacea purpurea)-1.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Echinacea purpurea}}''''', the purple coneflower. Flowers in a patch pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG very beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts a variety of bees, including ''{{WLG link|Taxon|Bombus}}'' (bumble bees), ''{{WLG link|Taxon|Megachile pugnata}}'' (leaf cutter bee), ''{{WLG link|Taxon|Melissodes}}'', and ''{{WLG link|Taxon|Svastra}}''.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Eupatorium fistulosum (homeredwardprice) 003.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Eutrochium fistulosum}}''''', the lanceleaf coreopsis.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bees and butterflies.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Closed Bottle Gentian.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Gentiana andrewsii}}''''', the bottle gentian.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bumblebees.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Helenium autumnale (7959744878).jpg|thumb|center|upright|'''''{{WLG link|Taxon|Helenium autumnale}}''''', the sneezweed. Flowers in a patch pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bumblebees, honey bees, and leafcutter bees.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Liatris spicata 3.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Liatris spicata}}''''', the marsh blazing star. Flowers in a patch pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG very beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Its nectar attracts a great diversity of butterflies including monarchs, {{WLG link|Taxon|Aphelocoma}}skippers, {{WLG link|Taxon|Aphelocoma}}sulfurs, and {{WLG link|Taxon|Aphelocoma}}swallowtails.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Lobelia siphilitica Lobelia wielka 03.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Lobelia siphilitica}}''''', the great blue lobelia.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Extremely shade tolerant and prized nectar source for ''[[Wildlife Gardening/Taxon/Bombus|Bombus]]''.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Monarda fistulosa flowers.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Monarda fistulosa}}''''', the wild bergamot. Flowers pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG favorable}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts ''{{WLG link|Taxon|Bombus pennsylvanicus}}'' (long-tongued bumble bee), other ''Bombus'' species, {{WLG link|Taxon|Aphelocoma}}hawk moths, and {{WLG link|Taxon|Aphelocoma}}hummingbirds.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Penstemon digitalis 12zz.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Penstemon digitalis}}''''', the smooth penstemon. Flowers pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG very beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> A semi-evergreen plant that produces large quantities of nectar that attracts honey bees, other bee species, butterflies and moths.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Coreopsis FR 2012.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Pycnanthemum}}''''', or mountain mint. Adult pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Fragrant foliage. Attracts bees as well as "{{WLG link|Taxon|Polyommatinae}}blue and {{WLG link|Taxon|Lycaeninae}}copper butterflies".<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Solidago rugosa 5475376.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Solidago rugosa}}''''', the wrinkle-leafed goldenrod. Flowers pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts hoverflies and solitary wasps. {{WLG link|Taxon|Cantharidae}}Soldier beetles will also visit to feed on pollen.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Symphyotrichum novae-angliae kz1.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Symphyotrichum novae-angliae}}''''', the New England aster.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts bumblebee queens in the run-up to their hibernation as well as honeybees and monarch butterflies.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:Verbesina alternifolia0.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Verbesina alternifolia}}''''', the wingstem. Adult pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Shade tolerant. Helps bees produce good honey.<ref name="midatlantic" /> |- | <!-- Taxon --> [[File:2014-08-27 16 09 02 New York Ironweed blossoms along the Meadow-Pond Trail in the Stony Brook-Millstone Watershed Association, New Jersey.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Vernonia noveboracensis}}''''', the New York ironweed. Flowers pictured.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG favorable}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> Attracts long-horned bees, other bee species, and butterflies.<ref name="midatlantic" /> |- |} {| class="wikitable sortable" align="center" width="100%" |- ! colspan=8|Native herbs of West Virginia |- ! Taxon ! Amphibians and fishes ! Birds ! Mammals ! Reptiles ! Invertebrates ! Plants and fungi ! scope="col" class="unsortable" | Notes |- | <!-- Taxon --> [[File:Atlas roslin pl Ukwap dwupienny 1547 6343.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Antennaria dioica}}''''', mountain everlasting or stoloniferous pussytoes.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> caterpillar host spring flowers deciduous groundcover host for American lady caters |- | <!-- Taxon --> [[File:Arctostaphylos uva-ursi 25924.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Arctostaphylos uva-ursi}}''''', the kinnikinnick or bearberry.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Asarum canadense 4.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Asarum canadense}}''''', the Canada wild ginger.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. spring flowers. deciduous groundcover. "excellent" groundcover. |- | <!-- Taxon --> [[File:Carex glaucodea drawing 1.png|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Carex glaucodea}}''''', the blue sedge.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. caterpillar host plant. deciduous ground cover. good ground cover. host for skippers. |- | <!-- Taxon --> [[File:Carex pensylvanica kz1.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Carex pensylvanica}}''''', the Pennsylvania sedge.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. caterpillar host plant. deciduous ground cover. good ground cover. host for 36 species of caterpillar, including skippers. |- | <!-- Taxon --> [[File:Carex platyphylla kz1.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Carex platyphylla}}''''', the broadleaf sedge.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. caterpillar host plant. evergreen ground cover. good groundcover. host plant for skippers. |- | <!-- Taxon --> [[File:Carex stricta.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Carex stricta}}''''', the upright sedge or tussock sedge.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. caterpillar host plant. spring flowers. deciduous ground cover. good ground cover. host for 36 species of caterpillar, including skippers. |- | <!-- Taxon --> [[File:ChrysogonumVirginianum.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Chrysogonum virginianum}}''''', the golden-knee or green and gold.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover pollen nectar spring flowers deciduous groundcover. helps early summer pollinators. |- | <!-- Taxon --> [[File:Teaberry (4411065123).jpg|thumb|center|upright|'''''{{WLG link|Taxon|Gaultheria procumbens}}''''', the eastern teaberry.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Hepatica nobilis plant.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Anemone hepatica}}''''', the common hepatica or liverwort.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen nectar spring flowers evergreen groundcover. supports early season native bees. |- | <!-- Taxon --> [[File:Canada Mayflower (3816399004).jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Maianthemum canadense}}''''', the Canadian may-lily or false lily-of-the-valley.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen nectar winter bird food spring flowers deciduous ground cover. |- | <!-- Taxon --> [[File:Mitchella repens - Partridge Berry.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Mitchella repens}}''''', the partridge berry.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG very beneficial}} | style="text-align: center;" | <!-- Mammals --> {{WLG very beneficial}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. winter bird food. mammal food. spring flowers. summer flowers. evergreen groundcover. many birds and mammals eat berries. |- | <!-- Taxon --> [[File:Phlox divaricata Ohio 2016.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Phlox divaricata}}''''', the wild blue phlox or woodland phlox.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. spring flowers. deciduous groundcover. nectar for hummingbird sphinx moth. |- | <!-- Taxon --> [[File:Phlox maculata NRCS-1.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Phlox maculata}}''''', the wild sweetwilliam or meadow phlox.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. summer flowers. deciduous groundcover. nectar for hummingbird sphinx moth. |- | <!-- Taxon --> [[File:Creeping Phlox Phlox stolonifera Flowers 3008px.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Phlox stolonifera}}''''', the creeping phlox or moss phlox.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. summer flowers. evergreen groundcover. nectar for hummingbird sphinx moth. |- | <!-- Taxon --> [[File:Podophyllum peltatum Single Leaf.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Podophyllum peltatum}}''''', the mayapple or American mandrake.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG beneficial}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. spring flower. deciduous ground cover. fruit eaten by box turtles. |- | <!-- Taxon --> [[File:Potentilla canadensis.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Potentilla candensis}}''''', the dwarf cinquefoil.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG beneficial}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. mammal food. spring flowers. evergreen ground cover. "good early summer source of pollen and nectar". |- | <!-- Taxon --> [[File:Potentilla simplex - Common Cinquefoil.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Potentilla simplex}}''''', the common cinquefoil or oldfield cinquefoil.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG beneficial}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. mammal food. spring flowers. evergreen ground cover. "good early summer source of pollen and nectar". |- | <!-- Taxon --> [[File:Sedum ternatum.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Sedum ternatum}}''''', the woodland stonecrop.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG slightly beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. spring flowers. evergreen ground cover. "some benefit" pollinators. |- | <!-- Taxon --> [[File:Tiarella cordifolia1.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Tiarella cordifolia}}''''', the heartleaf foamflower.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. spring flower. deciduous ground cover. "excellent ground cover and spring pollinator plant". |- | <!-- Taxon --> [[File:Viola blanda.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Viola blanda}}''''', the sweet white violet.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. spring flowers. deciduous ground cover. host for Argynnis and Speyeria fritillaries. |- | <!-- Taxon --> [[File:Viola macloskeyi 5496700.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Viola pallens}}''''', the smooth white violet.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. spring flowers. deciduous ground cover. host for Argynnis and Speyeria fritillaries. |- | <!-- Taxon --> [[File:Viola sororia in Wisconsin.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Viola sororia}}''''', the common blue violet.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. spring flowers. deciduous ground cover. host for Argynnis and Speyeria fritillaries. |- | <!-- Taxon --> [[File:Viola pedata.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Viola pedata}}''''', the bird's-foot violet, or mountain pansy.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. spring flowers. deciduous ground cover. host for Argynnis and Speyeria fritillaries. |- | <!-- Taxon --> [[File:Viola septentrionalis BB-1913.png|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Viola septentrionalis}}''''', the northern woodland violet.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> pollen. nectar. spring flowers. deciduous ground cover. host for Argynnis and Speyeria fritillaries. |- | <!-- Taxon --> [[File:Waldsteinia ternata 001.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Waldsteinia fragarioides}}''''', the Appalachian barren strawberry.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG beneficial}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> wildlife cover. pollen. nectar. spring flowers. deciduous groundcover. drought tolerant. |- |} groundcovers * Antennaria dioica * Arctostaphylos uva-ursi * Asarum canadense * Carex galucodea * Carex pennsylvanica * Carex platyphylla * Carex stricta * Chrysogonum virginianum * Fragraria virginiana- not in wv * Gaultheria procumbens * Hepatica americana * Maianthemum canadense * Mitchella repens * Pachysandra procumbens- not in wv * Phlox divaricata * Phlox maculata * Phlox stolonifera * Podophyllum peltatum * Potentilla candensis * Potentilla simplex * Sedum ternatum * Tiarella cordifolia * Viola blanda * Viola pallens * Viola papilionacea * Viola pedata * Viola septentrionalis * Waldsteinia fragrarioides HP dry sites to check * Agrimonia parviflora * Amsonia tabernaemontana * Anemone canadensis * Aquilegia canadensis * Arisaema triphyllum * Asclepias tuberosa * Aster divaricatus * Aster latiflorus * Aster novae-angliae * Aster oblongifolius * Aster spectabilis * Baptisia australis * Cardamine concatenata * Chrysopis mariana * Cimicifuga racemosa * Coreopsis lanceolata * Coreopsis verticillata * Eupatorium hyssopifolium * Eupatorium perfoliatum * Eupatorium rotundifolium * Eupatorium serotinum * Euphorbia corollata * Geranium maculatum * Heliopsis helianthoides * Heuchera americana * Lespedeza virginica * Mertensia virginica * Oenothera fructicosa * Packera aurea * Phlox maculata * Pycnathemum muticum * Pycnanthemum tenuifolium * Ratibida pinnata * Rudbeckia fulgida * Rudbeckia nitida * Salvia lyrata * Sedum ternatum * Senna hebecarpa * Silene virginica * Sisyrinchium angustifolium * Solidago caesia * Solidago canadensis * Solidago graminifolia * Solidago rugosa * Solidago speciosa * Vernonicastrum virginicum HP Moist sites to check * Aconitum uncinatum * Actaea pachypoda * Agastache scrophulariifolia * Aruncus dioicus * Asclepias incarnata * Aster puniceus * Astilbe biternata * Boltonia asteroides * Chelone glabra * Coreopsis rosea * Dicentra cucullaria * Dicentra eximia * Erythronium americanum * Eupatorium coelestinum * Eupatorium dubium * Eupatorium fistulosum * Eupatorium rugosum * Filipendula rubra * Helenium autumnale * Helianthus angustifolius * Hibiscus moscheutos * Iris versicolor * Jeffersonia diphylla * Liatris spicata * Lobelia cardinalis * Lobelia siphilitica * Ludwigia alternifolia * Lysimachia ciliata * Mimulus ringens * Monarda didyma * Penstemon digitalis * Phlox paniculata * Polemonium reptans * Polygonatum commutatum * Rudbeckia laciniata * Verbena hastata * Vernonia noveboracensis ==Graminoids== {| class="wikitable sortable" align="center" width="100%" |- ! colspan=8|Native graminoids of the northeastern United States |- ! Taxon ! Amphibians and fishes ! Birds ! Mammals ! Reptiles ! Invertebrates ! Plants and fungi ! scope="col" class="unsortable" | Notes |- | <!-- Taxon --> [[File:Andropogon gerardii (3904160434).jpg|thumb|center|upright|'''''{{WLG link|Taxon|Andropogon gerardii}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Andropogon ternarius.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Andropogon ternarius}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Andropogon virginicus plant late flower1 (6948585221) (2).jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Andropogon virginicus}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Carex flaccosperma fruiting.JPG|thumb|center|upright|'''''{{WLG link|Taxon|Carex flaccosperma}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Carex pensylvanica.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Carex pensylvanica}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Brown Fox Sedge (Carex vulpinoidea) in wet meadow at the Morton Arboretum - Flickr - Jay Sturner (3).jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Carex vulpinoidea}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Inland Sea Oats (31193311251).jpg|thumb|center|upright|'''''{{WLG link|Taxon|Chasmanthium latifolium}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Elymus canadensisEVB.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Elymus canadensis}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Elymus hystrix - Botanischer Garten der Universität Würzburg.JPG|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Elymus hystrix}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:The book of grasses - an illustrated guide to the common grasses, and the most common of the rushes and sedges (1912) (14577001450).jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Elymus virginicus}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Eragrostis cummingii habit.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Eragrostis spectabilis}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Horn-Bad Meinberg - 2015-08-09 - Regenrückhaltebecken Belle (09).jpg|thumb|center|upright|'''''{{WLG link|Taxon|Juncus effusus}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Panicum virgatum.jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Panicum virgatum}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:American grasses (1897) (18121537656).jpg|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Saccharum giganteum}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Andropogon scoparius.jpg|thumb|center|upright|'''''{{WLG link|Taxon|Schizachyrium scoparium}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Sorghastrum nutans illustration 2.tif|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Sorghastrum nutans}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- | <!-- Taxon --> [[File:Tripsacum dactyloides HC-1950.png|thumb|center|upright=0.5|'''''{{WLG link|Taxon|Tripsacum dactyloides}}''''', the butterfly milkweed.]] | style="text-align: center;" | <!-- Amphibians and fishes --> {{WLG neutral}} | style="text-align: center;" | <!-- Birds --> {{WLG neutral}} | style="text-align: center;" | <!-- Mammals --> {{WLG neutral}} | style="text-align: center;" | <!-- Reptiles --> {{WLG neutral}} | style="text-align: center;" | <!-- Invertebrates --> {{WLG neutral}} | style="text-align: center;" | <!-- Plants and fungi --> {{WLG neutral}} | <!-- Notes --> |- |} ganeqotyjfotq4hl2shd3wi5tkzqpqm User:Jewlsd 2 420236 4668297 3747642 2026-09-03T13:32:44Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668297 wikitext text/x-wiki == The Jester's Ego == [[The Clown's Painted Smile/Mundanities Absurdism]] == Jewls' Structure == : ''See also [[w:smug design|Pretentious Structure]] for some helpful tips and ideas.'' === I Find Myself Funny === The main page is generally the first page a new reader sees. It should give a quick overview of the scope, intended audience and layout of the book. [[w:Glossary of comics terminology#Splash|Splash pages]] should be avoided. Often the layout is simply the full table of contents. Collections, printable versions and PDF files should be easily accessible from this page. Links to the book from the [[Wikibooks:Card Catalog Office|card catalog office]] and external websites should point to a book's main page. The subject index on the card catalog office requires the {{tl|shelves}} template to be placed on the main page of the book. The book's main page and category should be placed in any [[Wikibooks:Categories|categories]] that the book belongs to. Indicate a book's completion status with {{tl|status}} to provide readers with an idea of how far along the book is when browsing the [[Wikibooks Stacks/Departments|shelf pages]]. If you still require help with categorizing a book, please [[WB:HELP|request assistance in the reading room]]. Interlingual links should be placed on the book's main page. Books across language projects may be dissimilar even when about the same subject. Be wary about placing interlingual links on any other pages. === Table of contents === In general, the table of contents should reside on the main page, giving readers an overview of the available material. In cases where this is impractical, a special page can be created for it. Common names for such pages are <code>''Contents''</code>, <code>''Table of contents''</code> or similar. <gallery widths="64px" heights="64px" caption="Table of contents examples"> File:Wikibooks standard toc.svg|Standard TOC File:Wikibooks 2col toc.svg|2 column TOC File:Wikibooks 2col toc2.svg|2 column TOC </gallery> === Introduction === An [[w:Introduction (essay)|introduction]] page is the first page where learning begins. A book's introduction page commonly delves into purpose and goals of the book; what the book aims to teach, who the audience is, what the book's scope is, what topics the book covers, history of the subject, reasons to learn the subject, any conventions used in the book, or any other information that might make sense in an introductory chapter. Common names for such pages are <code>''Introduction''</code> or <code>''About''</code>. The latter is more commonly used when information about the book is split from the introduction of the subject matter. The [[Help:Local manuals of style|local manual of style]]—when it is not part of the <code>''Introduction''</code> page -- is often named literally "Local style manual", "Manual of style", "How to contribute", "How you can help", "About", etc. &mdash; appended to the book name, of course. Whatever it is called in the book you are editing, it would be nice if a link to it is on the same page as the table of contents. Having a local manual of style is further discussed in [[WB:LMOS]]. ozvfpgibjep08mtai2zc7dja0fo5o3x User:MorpheusKafka/US Immigration Law 2 423372 4668514 4656973 2026-09-04T07:44:37Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668514 wikitext text/x-wiki {| style="width:100%; margin-bottom: .6em; -moz-border-radius: 4px; text-align:center; border: 1px solid #50A6C2; background-color:#F0F8FF;{{Text color default}}; padding: .6em .6em .6em .6em;" | style="width:100px" | [[File:Constitution of the United States - DPLA - 9ca804144bd5965e992ae3528bc3c6a3 (page 1).jpg|100px|frameless]] | <span style="font-family: 'bitstream'; color: #bb1b00; font-size: x-large;">'''US IMMIGRATION LAW'''</span><br/> | style="width:100px" | [[File:Scale of justice 2.svg|75px|frameless]] |} {{Book Search|prefix=User:MorpheusKafka/US Immigration Law}} {{USLawTOC}} {{Reading level|advanced}} [[File:US Supreme Court.JPG|250px|frameless|right]] {|style="width:65%;" | style="background-color: cream;{{Text color default}};border: solid 1px gray; padding: 1em; vertical-align:top" | This book is ''currently a userspace draft.'' The '''United States Immigration Law''' book provides an explanation of the structure of the laws of the United States relating to citizenship, nationality, immigration, residence, and permission to work. Though the book does not assume existing legal education, it does aim to describe the subject in a fairly high level of detail and may not be suitable for readers who need a quick explanation of a particular concept. The main goals of the book are to enable the reader to: * understand the structure and modern history of US immigration law; * understand the types of benefits and statuses one may hold obtain the law; * understand the immigration obligations of individuals and employers; |} {|style="width:65%;" | style="background-color: cream;{{Text default color}}; border: solid 1px gray; padding: 1em; vertical-align:top" | This book is not intended as an instruction manual for filling out immigration forms, nor is it intended as legal advice to you. Be sure to consult with a qualified immigration law practitioner. This book is not intended as a practice manual for attorneys, and may not discuss all possible challenges or arguments that could be raised in any particular case. This book will also not extensively cover historical provisions of law that have become obsolete or no longer in active use. |} {| style="width:65%;" | style="background-color: cream;{{Text default color}}; border: solid 1px gray; padding: 1em; vertical-align:top" | == Chapters == {{col-begin}} {{col-break}} * [[/Mens rea/]] {{stage|25%|2018-01-01}} * [[/Actus reus/]] {{stage|25%|2018-01-01}} * [[/Summary/]] {{stage|25%|2018-01-01}} {{col-break}} * [[/Preliminary offenses/]] {{stage|25%|2018-01-01}} * [[/Search and seizure/]] {{stage|25%|2018-01-01}} * [[/Defenses/]] {{stage|25%|2017-12-31}} {{col-break}} {{col-end}} |} {{center/top}} {| style="width:65%;" | style="background-color: cream;{{Text color default}}; border: solid 1px gray; padding: 1em; vertical-align:top"| {{center|[[File:CC-BY-SA Yellow.svg]] [[File:GFDL Yellow.svg]]}}{{center|This book is dual licensed under the GFDL and Creative Commons Attribution-ShareAlike 3.0 Unported License.}} |} {{message box|image=Stop hand.png|alt=stop sign|backgroundcolor=white|heading=Legal Disclaimer|message=This book contains legal information, which is for educational purposes only, and should not be construed as legal advice; please consult a qualified legal professional prior to making legal decisions. See '''[[Wikibooks:Legal disclaimer]]''' for the full disclaimer.}} {{center/end}} <!-- {{Alphabetical|C}} --> <!-- {{Shelves|Immigration law}} --> <!-- {{status|25%}} --> __NOTOC__ __NOEDITSECTION__ flz83fuj8luzrj30e11zq1bcvzeiw98 Maxima/Data structures 0 438298 4668493 4668128 2026-09-04T02:46:11Z Idavidmiller 3577687 Work in progress. Saving Changes. 4668493 wikitext text/x-wiki == Maxima Aggregate Data Structures == === Introduction === This book is intended to present some of the essentials of what is called Maxima aggregate data structures. By this it is meant the data types that can be used to refer to the values of expressions using a means of indexing of a single identifier (name) that refers to an aggregate (collection) of expressions as values. Built-in aggregate data types include: * lists * hashed arrays * declared arrays * structures Each of these has a means of indexing an identifier that names an instance of these data types. Please note that it is the case that this means of indexing an identifier for an aggregate data type may be referred to as involving "subscripts" or "sub-scripted variables" or "keys" as used by various computer programming languages, as well as in the context of Maxima documentation and commentary. In this book terms such as "index" or "indices" or "indexed identifiers"  are used instead. Also all built-in Maxima functions (including packages) for these data types are referred to as ''"operators"'' and not ''"functions"'' as this latter term in general serves better to refer to Maxima function expressions defined by the user -- as in <code>f(x) :=</code>, <code>g[s] :=</code> and <code>define ()</code> as examples. This section is not intended to be exhaustive. It is intended to provide familiarity with aggregate data types. What is included has been gleaned from various sources, and only a few attributions are provided. Therefore, there is no claim of originality implied. === Lists === ==== Introduction to Lists ==== Lists are one of the basic buildings block for Maxima and Lisp. Maxima expressions are in general represented as Lisp lists. For example, consider the Maxima expression:<syntaxhighlight lang="maxima"> (%i1) e+3; (%o1) e+3 </syntaxhighlight>This expression has the form of a Lisp list:<syntaxhighlight lang="maxima"> (%i2) :lisp #$[e+3]$ ((MLIST SIMP) ((MPLUS SIMP) 3 $E)) </syntaxhighlight>An expression in the form of a Lisp list can also be be displayed as a Maxima expression:<syntaxhighlight lang="maxima"> (%i2) :lisp (displa '((MLIST SIMP) ((MPLUS SIMP) 3 $E))); [e+3] NIL </syntaxhighlight>Note that the value of this expression using <code>displa '()</code> is <code>NIL</code>, and <code>[e+3]</code> is simply displayed in Maxima list object form. It is not necessary for the typical uses of Maxima to utilize this insight into the role Lisp lists have as one of the building blocks for Maxima, but it may be useful to have a familiarity with that role. Lists are often used as arguments to many operators, and the values of expressions are often in the form of lists. ==== Some Operators for Lists ==== Lists are created explicitly and list elements referenced using <code>[</code> and <code>]</code> to mark the beginning and end, respectively, of an instance of a list object, or to reference the expressions of an existing list object.<syntaxhighlight lang="maxima"> (%i3) [2,3,4]; (%o3) [2,3,4] </syntaxhighlight>The expression <code>[2,3,4]</code> creates a Maxima list object. In this case the object itself is not accessible as it was not assigned an identifier unless referenced by the <code>%</code> , <code>%i</code> or <code>%o</code> label.<syntaxhighlight lang="maxima"> (%i4) %; (%o4) [2,3,4] (%i5) %o4[2]; /* second expression of list object referenced by index */ (%o5) 3 </syntaxhighlight>That [2,3,4] is a list object can be tested using the <code>listp()</code> operator:<syntaxhighlight lang="maxima"> (%i6) listp ([2,3,4]); (%o6) true </syntaxhighlight>A list object can be assigned an identifier:<syntaxhighlight lang="maxima">(%i7) s:[%pi,%e,%phi]; (s) [%pi,%e,%phi] (%i8) listp (s); (%o8) true</syntaxhighlight> The value of an element of a list can be accessed using the list identifier and brackets with a index value.<syntaxhighlight lang="maxima"> (%i9) s[1]; (%o9) %pi (%i10) s[2]; (%o10) %e (%i11) s[3]; (%o11) %phi </syntaxhighlight> Invalid index values returns an error:<syntaxhighlight lang="maxima"> (%i12) s[4]; inpart: invalid index 4 of list or matrix. -- an error. To debug this try: debugmode(true); </syntaxhighlight> Consider the following relatively long list of integer atoms created explicitly and identified as <code>List_1</code>:<syntaxhighlight lang="maxima">(%i13) List_1:[1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372,142,1,1582,145,2, 118,33,2,484,69,2,664,111,2,1004,156,2,1231,172,2,1372,203,2,1582,203,3,118, 30,3,484,51,3,664,75,3,1004,108,3,1231,115,3,1372,139,3,1582,140,4,118,32,4, 484,62,4,664,112,4,1004,167,4,1231,179,4,1372,209,4,1582,214,5,118,30,5,484, 49,5,664,81,5,1004,125,5,1231,142,5,1372,174,5,1582,177]; (List_1) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372,142,1,1582,145,2,118,33,2,484,69,2,664,111,2,1004,156,2,1231,172,2,1372,203,2,1582,203 ,3,118,30,3,484,51,3,664,75,3,1004,108,3,1231,115,3,1372,139,3,1582,140,4,118,32,4,484,62,4,664,112,4,1004,167,4,1231,179,4,1372,209,4,1582, 214,5,118,30,5,484,49,5,664,81,5,1004,125,5,1231,142,5,1372,174,5,1582,177]</syntaxhighlight> The number of values of this list can be returned using the <code>length()</code> operator:<syntaxhighlight lang="maxima"> (%i14) length (List_1); (%o14) 105 </syntaxhighlight> Create another list identified as <code>List_2</code>:<syntaxhighlight lang="maxima"> (%i15) List_2 : [6,1455,200,6,1607,205]; (List_2) [6,1455,200,6,1607,205] (%i16) length (List_2); (%o16) 6 </syntaxhighlight> Create a third list identified as <code>List_3</code>:<syntaxhighlight lang="maxima"> (%i17) List_3 : append (List_1, List_2)$ (%i18) length (List_3); (%o19) 111 </syntaxhighlight> Note that the <code>'''append ()'''</code> operator does not affect either of the list arguments <code>List_1</code> or <code>List</code>_2. It merely appends <code>List_2</code> to <code>List_1</code> and returns a new list, in this case assigned the identifier <code>List_3</code>.<syntaxhighlight lang="maxima">(%i20) length (List_1); (%o20) 105 (%i21) length (List_2); (%o21) 6 (%i22) length (List_3); (%o22) 111 (%i23) List_3; (%o23) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372, 142,1,1582,145,2,118,33,2,484,69,2,664,111,2,1004,156,2, 1231,172,2,1372,203,2,1582,203,3,118,30,3,484,51,3,664, 75,3,1004,108,3,1231,115,3,1372,139,3,1582,140,4,118,32, 4,484,62,4,664,112,4,1004,167,4,1231,179,4,1372,209,4, 1582,214,5,118,30,5,484,49,5,664,81,5,1004,125,5,1231, 142,5,1372,174,5,1582,177,6,1455,200,6,1607,205]</syntaxhighlight> Values (the last one in this example) can be deleted from a list:<syntaxhighlight lang="maxima">(%i24) last (List_3); (%o24) 205 (%i25) delete (last (List_3), List_3); (%o25) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372, 142,1,1582,145,2,118,33,2,484,69,2,664,111,2,1004,156,2, 1231,172,2,1372,203,2,1582,203,3,118,30,3,484,51,3,664, 75,3,1004,108,3,1231,115,3,1372,139,3,1582,140,4,118,32, 4,484,62,4,664,112,4,1004,167,4,1231,179,4,1372,209,4, 1582,214,5,118,30,5,484,49,5,664,81,5,1004,125,5,1231, 142,5,1372,174,5,1582,177,6,1455,200,6,1607]</syntaxhighlight> The <code>delete (List_3)</code> expression creates a new list object using <code>List_3</code>. <code>List_3</code> itself is not affected by the <code>'''delete ()'''</code> operator. Only the resulting list is affected. This is often the case with list operators. An identifier could be used to save the above resulting list if necessary:<syntaxhighlight lang="maxima">/* List_3 is the same length */ (%i26) length(List_3); (%o26) 111 /* The last value of List_3 is the same */ (%i27) List_3[111]; (%o27) 205 (%i28) last(List_3); (%o28) 205</syntaxhighlight>There was only one instance of <code>205</code> in <code>List_3</code>, so only that value was deleted from the list of <code>%o25</code>. If there are more than one value then the <code>delete ()</code> operator will remove all of those values from the returned list expression:<syntaxhighlight lang="maxima"> (%i29) NewList_3 : delete(118, List_3)$ /* all five instances of 118 removed from List_3 as NewList_3 */ (%i30) length(NewList_3); (%o30) 106 </syntaxhighlight>There are operators to refer to instances of list expressions by ordinal number:<syntaxhighlight lang="maxima"> (%i30) FirstThreeList_3:[first(List_3), second(List_3), third(List_3)]; (FirstThreeList_3) [1,118,30] </syntaxhighlight>Expressions of list objects can e referenced to create a new list object from the first n expressions of a list, the last n expressions of a list, or the rest remaining after n expressions from the beginning or -n expressions from the end of a list:<syntaxhighlight lang="maxima">/* first three expressions of List_3 */ (%i31) firstn(List_3,3); (%o31) [1,118,30] /* same three expressions of List_3 using the rest operator with -108 */ (%i32) rest(List_3, -108); (%o32) [1,118,30] /* last three expressions of List_3 */ (%i33) lastn(List_3,3); (%o33) [6,1607,205] /* same three expressions of List_3 using the rest operator with 108 */ (%i34) rest(List_3, 108); (%o34) [6,1607,205]</syntaxhighlight>Some further examples of the <code>'''firstn ()'''</code>, <code>'''lastn ()'''</code> and <code>'''rest ()'''</code> list operators:<syntaxhighlight lang="maxima"> /* first 63 expressions of List_3 */ (%i35) firstn (List_3, 63); (%o35) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372,142,1, 1582,145,2,118,33,2,484,69,2,664,111,2,1004,156,2,1231,172,2, 1372,203,2,1582,203,3,118,30,3,484,51,3,664,75,3,1004,108,3, 1231,115,3,1372,139,3,1582,140] /* last 63 expressions of List_3 */ (%i36) lastn (List_3, 63); (%o36) [3,664,75,3,1004,108,3,1231,115,3,1372,139,3,1582,140,4,118,32, 4,484,62,4,664,112,4,1004,167,4,1231,179,4,1372,209,4,1582,214, 5,118,30,5,484,49,5,664,81,5,1004,125,5,1231,142,5,1372,174,5, 1582,177,6,1455,200,6,1607,205] /* first expressions of List_3 after removing the last 63*/ (%i37) rest (List_3, -63); (%o37) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372,142,1, 1582,145,2,118,33,2,484,69,2,664,111,2,1004,156,2,1231,172,2, 1372,203,2,1582,203,3,118,30,3,484,51] </syntaxhighlight>Maxima programming expressions can be used with list operators to reference list expressions in various ways. For example, the expression which follows accesses the expressions of a list as lists of three each:<syntaxhighlight lang="maxima"> (%i38) (L4 : List_4, for i:(-length (List_4)) + 3 thru 0 step 3 do (disp (rest (L4, i)), L4 : rest (L4, 3)), "")$ [1,118,30] [1,484,58] [1,664,87] [1,1004,115] [1,1231,120] [1,1372,142] [1,1582,145] [2,118,33] [2,484,69] [2,664,111] [2,1004,156] [2,1231,172] [2,1372,203] [2,1582,203] [3,118,30] [3,484,51] [3,664,75] </syntaxhighlight>List operators can be used as arguments other list operators:<syntaxhighlight lang="maxima"> /* create a new empty list */ (%i39) newList4 : []; (newList4) [] /* append the first six & last six expressions of List_4 to the new list */ (%i40) newList4 : append (newList4, firstn (List_4, 6), lastn (List_4, 6))$ /* the new list now has the 12 appended expressions from List_4 */ (%i41) newList4; (%o41) [1,118,30,1,484,58,3,484,51,3,664,75] </syntaxhighlight> Maxima programming expressions can be used to step through the expressions of lists using list operators to reference "slices" of different lengths:<syntaxhighlight lang="maxima">(%i42) L4 : List_4; (L4) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372,142,1,1582 145,2,118,33,2,484,69,2,664,111,2,1004,156,2,1231,172,2,1372,203, 2,1582,203,3,118,30,3,484,51,3,664,75] (%i43) length (L4); (%o43) 51 (%i44) (L4 : List_4, for i : 21 thru 3 step -3 do print (L4 : lastn (L4, i)," ", length (L4)), "")$ [2,1004,156,2,1231,172,2,1372,203,2,1582,203,3,118,30,3,484,51,3,664,75] 21 [2,1231,172,2,1372,203,2,1582,203,3,118,30,3,484,51,3,664,75] 18 [2,1372,203,2,1582,203,3,118,30,3,484,51,3,664,75] 15 [2,1582,203,3,118,30,3,484,51,3,664,75] 12 [3,118,30,3,484,51,3,664,75] 9 [3,484,51,3,664,75] 6 [3,664,75] 3</syntaxhighlight> ==== Using the <code>copylist</code> Operator ==== When an existing list object is assigned to an identifier, a reference to the memory location of the list object is used. This reference to the memory location is transparent from the point of view of the user. However,if this is not accounted for unintended side effects may occur when assigning another identifier to an existing one that references a list object. For example, in the expression <code>L4 : List_4</code> it might be assumed that this results in the list object referenced by <code>List_4</code> to simply be copied to a new memory location and reference for <code>L4</code>. This is not the case. Both <code>L4</code> and <code>List_4</code> refer to the same list object in memory. Consequently changes to the same list object can be effected by referencing the object using either alias.<syntaxhighlight lang="maxima"> (%i45) newList4; (%o45) [1,118,30,1,484,58,3,484,51,3,664,75] /* The identifier newList4 refers to a location in memory. The colon (:) assignment operator simply creates an alias using that same memory reference*/ (%i46) newList5 : newList4; (newList5) [1,118,30,1,484,58,3,484,51,3,664,75] /* Two different identifiers for the same memory location and therefore the same object. Changes to expressions of the list object using either identifier changes the same object in memory */ (%i47) newList5[1] : 99; (newList5[1]) 99 (%i48) newList4[1]; (%o48) 99 (%i49) newList4; (%o49) [99,118,30,1,484,58,3,484,51,3,664,75] (%i50) newList5; (%o50) [99,118,30,1,484,58,3,484,51,3,664,75] </syntaxhighlight> This "side effect" is often unwanted. The way to avoid this is by using the <code>copylist ()</code> operator instead of the assignment operator:<syntaxhighlight lang="maxima"> (%i51) newList4 : [1,118,30,1,484,58,3,484,51,3,664,75] ; (newList4) [1,118,30,1,484,58,3,484,51,3,664,75] (%i52) newList5 : copylist (newList4); (newList5) [1,118,30,1,484,58,3,484,51,3,664,75] /* Same list object expressions, but a different memory reference */ (%i53) newList5[1] : 99; (newList5[1]) 99 (%i54) newList4[1]; (%o54) 1 </syntaxhighlight> Changes to the values of either list will not affect the other list. {| class="wikitable" |+List Object Operators |[ |fourth |rreduce |- |] |fullsetify |second |- |append |join |setify |- |assoc |last |seventh |- |cons |length |sixth |- |copylist |listarith |some |- |create_list |listp |sort |- |delete |lmax |sublist |- |eighth |lmin |sublist_indices |- |endcons |lreduce |tenth |- |fifth |makelist |third |- |first |member |tree_reduce |- |flatten |reverse |xreduce |} Refer to the Maximal Manual<ref>{{Cite web |title=Maxima Manual Section 7.4.2 Functions and Variables for Lists |url=https://maxima.sourceforge.io/docs/manual/Data-Types-and-Structures.html#Lists}}</ref> for more complete description of operators and variables for Maxima lists. ==== Performance Considerations for Lists ==== <blockquote>''"Lists provide efficient ways of appending and removing elements. They can be created without knowing their final dimensions. Lisp provides efficient means of copying and handling lists. Also nested lists do not need to be strictly rectangular. These advantages over declared arrays come with the drawback that the amount of time needed for accessing a random element within a list may be roughly proportional to the element’s distance from its beginning."''<ref>{{Cite web |title=Maxima Manual Section 7.4.3 Performance considerations for Lists |url=https://maxima.sourceforge.io/docs/manual/Data-Types-and-Structures.html#Lists}}</ref></blockquote>Maxima list objects have many operators for creating, accessing, and changing the expressions of lists. Evaluation times of expressions that involve lists can vary significantly depending on the length of the list objects involved, as well as the nature of any operators used to compose the expressions. This fact might have an influence on the choice of using arrays rather than lists in some cases if evaluation time is a factor to consider. The example expressions that follow involve a list object (identified as <code>s</code> ) of complex number expressions that has a length of 10,000 and two different user-defined functions:<pre>(%i55) P1(s) := rectform (product(s[i], i, 1, length (s)))$ (%i56) P2(s) := xreduce (lambda ([a, b], rectform (a * b)), s)$ (%i57) s : makelist (random (1.0) + %i*random (1.0), 10^4)$ (%i58) showtime : true$ Evaluation took 0.0000 seconds (0.0000 elapsed) using 0 bytes. (%i59) P1(s); Evaluation took 32.3080 seconds (32.3860 elapsed) using 17944.301 MB. (%o59) 0.0 (%i60) P2(s); Evaluation took 0.0620 seconds (0.0620 elapsed) using 8.343 MB. (%o60) 0.0 (%i61) showtime : false$ Evaluation took 0.0000 seconds (0.0000 elapsed) using 0 bytes.</pre> ==Arrays == <blockquote>"Maxima's current array/matrix semantics are a mess, I must say, with at least four different kinds of object (hash arrays, explicit lists, explicit matrices, Lisp arrays) supporting subscripting with varying semantics." <ref>[http://comments.gmane.org/gmane.comp.mathematics.maxima.general/21829 Maxima: Syntax improvements by Stavros Macrakis ]</ref> – Stavros Macrakis "Maxima's concept of arrays, lists, and matrices is pretty confused, since various ideas have accreted in the many years of the project... Yes, this is a mess. Sorry about that. These are all interesting ideas, but there is no unifying framework."<ref>[http://stackoverflow.com/a/29926692 Maxima: what does Maxima call an “array”? - answer by Robert Dodier]</ref> – Robert Dodier</blockquote> The various terminology used in the context of arrays undoubtedly can be confusing. For the sake of simplicity and clarity the following categories of array objects are referred to in this book: Maxima has three array categories :<ref>[http://permalink.gmane.org/gmane.comp.mathematics.maxima.general/13588 the Maxima mailing list <nowiki>: [Maxima] array and matrix? - answer by Robert Dodier</nowiki>]</ref> * Declared arrays * Undeclared (hashed) arrays * Lisp arrays '''''Declared arrays''''' are explicitly created using the <code>array()</code> operator, and unlike lists, which have only one index and are one-dimensional, declared arrays can be multi-dimensional – having one to five indices. The indices for declared array dimensions need not be equal. Indices for each dimension may be between 0 and the respective declared dimension. Each declared array may be for expressions of a specified type, which can be ''fixnum'' for integers or ''flonum'' for floating-point numbers. '''''Undeclared (hashed) arrays''''' are created implicitly by assigning an expression to an indexed identifier that does not name an existing list object. An undeclared array (hashed array) can grow dynamically as there is no fixed dimension limit for each index as there is with declared arrays Another difference is that numbers, identifiers, expressions and strings may be used for indices. Also, there is no fixed limit on the number of dimensions. The only real limitation is practical – the available computer memory and the underlying Lisp environment of the Maxima session. Hashed arrays with only one dimension may be confused with a list object. It is essential to keep in mind that list objects must always be created before values are assigned or referenced. Assigning an expression to a one-dimensional indexed identifier, that does not reference an existing list, implicitly creates a hashed array. '''''Lisp arrays''''' are created using the <code>'''make_array ()'''</code> operator. The array type may be specified as ''any'', ''flonum'', ''fixnum'', or ''hashed''. Lisp array objects may be created as one-dimensional or multi-dimensional as specified by the number of dimension size values used with the <code>'''make_array ()'''</code> operator. For each dimension value specified, the associated index value can be a number between 0 to 1 less than the respective dimension value. The same or different values may be used for each specified dimension. the ''hashed'' type does not require any dimensions. Lisp arrays may be used in cases where memory usage and garbage collection are factors. Examples of use and elaboration upon the technical details for each of these categories of array object types follows. {| class="wikitable" |+Array Operators and Flags |array |arraysetapply |rearray |- |arrayapply |has_key |remarray |- |arrayinfo |fillarray |subvar |- |arraymake |listarray |subvarp |- |arrays |make_array |use_fast_arrays |- | | |translate_fast_arrays |} === Declared Arrays === Declared arrays must be created before being referenced and are of fixed dimensions.<syntaxhighlight lang="maxima"> (%i1) array(A1, fixnum, 34,2); (%o1) A1 (%i2) array(A2, flonum, 35,2); (%o2) A2 (%i3) array(A3, 14,3); (%o3) A3 (%i4) arrayinfo (A1); (%o4) [complete,2,[34,2]] (%i5) arrayinfo (A2); (%o5) [complete,2,[35,2]] (%i6) arrayinfo (A3); (%o6) [declared,2,[14,3]] </syntaxhighlight> The first expression <code>%i1</code> creates a declared array object named using the identifier <code>A1</code>. This array is two-dimensional – the first index may have values from 0 to 34 and the second index may have values from 0 to 2. This array therefore is 35 by 3 in extent. The array type is declared to be <code>fixnum</code>. As it is, <code>A1</code> is an not empty array – it has values to reference as will be exemplified below. Similarly the second expression <code>%i2</code> creates a declared array object named using the identifier <code>A2</code>. This array is also two-dimensional – the first index may have values from 0 to 35 and the second index may have values from 0 to 2. This array therefore is 36 by 3 in extent. The array type is declared to be <code>flonum</code>. As it is, <code>A2</code> is not an empty array – it also has values to reference as will be exemplified below. The third expression <code>%i3</code> creates a declared array object named using the identifier <code>A3</code>. This array is also two-dimensional – the first index may have values from 0 to 13 and the second index may have values from 0 to 3. This array therefore is 15 by 4 in extent. The array type is not declared. As it is, <code>A3</code> is an empty array – it has no values to reference as will be exemplified below. The <code>'''arrayinfo ()'''</code> operator can be used to return a list object that has values reflecting information about an array. Note that arrays declared without a type will have <code>declared</code> as a value of the list. Arrays declared with <code>fixnum</code> or <code>flonum</code> as the type will have <code>complete</code> as a value of the list. This technical detail is not well-documented. The returned information list also shows a value for the dimension of the array ( 2 in these examples ) and an inner list with values for the maximum index for each dimension. A look inside each of these declared arrays provides a clue as to why <code>complete</code> is returned instead of <code>declared</code> when the type is specified as <code>fixnum</code> or <code>flonum</code>:<syntaxhighlight lang="maxima">/* This array reference has a value of 0 */ (%i7) A1[0,0]; (%o7) 0 /* This array reference has a value of 0.0 */ (%i8) A2[0,0]; (%o8) 0.0 /* This array reference has a value of itself */ (%i9) A3[0,0]; (%o9) A3[0,0]</syntaxhighlight> In fact, ''all'' values of the array <code>A1</code> have been assigned 0, and ''all'' values of the array <code>A2</code> have beenassigned 0.0. However, ''all'' values of the array <code>A3</code> have been not been assigned any value.<syntaxhighlight lang="maxima">(%i10) listarray(A1); (%o10) [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0] (%i11) listarray(A2); (%o11) [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] (%i12) listarray(A3); (%o12) [#####,#####,#####,#####,#####,#####,#####,#####,#####,#####,#####, #####,#####,#####,#####,#####,#####,#####,#####,#####,#####,#####, #####,#####,#####,#####,#####,#####,#####,#####,#####,#####,#####, #####,#####,#####,#####,#####,#####,#####,#####,#####,#####,#####, #####,#####,#####,#####,#####,#####,#####,#####,#####,#####,#####, #####,#####,#####,#####,#####]</syntaxhighlight> Thus, arrays <code>A1</code> and <code>A2</code> are <code>complete</code> in this sense, and array <code>A3</code> is simply <code>declared</code>. It might seem reasonable, that Maxima would complain if a value was assigned to an array that is at odds with the declared type. Such is not the case however. Once an array is declared with a type, Maxima does not enforce any type checking of values assigned to the array. The effect of the type (if any) in the declaration is simply to fill the array with values of #####, 0 or 0.0. Subsequently, those values can be replaced by the assignment of different values that will not be checked for the type of value. One way to enforce type checking is by using predicate operators to check values at the point in time of assignment to arrays. For example, using one or more of: * numberp (expr) * floatnump (expr) * integerp (expr) * ratnump (expr) * stringp (obj) * listp (expr) * featurep (a, f) and possibly others.<syntaxhighlight lang="maxima"> /* A1 was declared as type fixnum */ (%i13) A1[5,2]:3.14159; (%o13) 3.14159 /* A2 was declared as type flonum */ (%i14) A2[3,0]:7129; (%o14) 7129 /* A1 which was declared as type fixnum assigned a string */ (%i15) A1[4,1]:"a string"; (%o15) "a string" /* A2 which was declared as type flonum assigned a math expression*/ (%i16) A2[6,1]:3*x^2 + 4*x +10; (%o16) 3*x^2+4*x+10 </syntaxhighlight> There are other ways to assign values to an array. One way is to read the values from a comma separated (CSV) file using the <code>'''read_array ()'''</code> operator from the ''numericalio'' package.<syntaxhighlight lang="maxima"> (%i17) load(numericalio); (%o17) "/app/plugins/maxima/share/maxima/5.50.0/share/numericalio/numericalio.mac" </syntaxhighlight> Below are of the values of the CSV data file <code>tree_data_nh.csv</code> :<syntaxhighlight lang="text"> 1,118,30 1,484,58 1,664,87 1,1004,115 1,1231,120 1,1372,142 1,1582,145 2,118,33 2,484,69 2,664,111 2,1004,156 2,1231,172 2,1372,203 2,1582,203 3,118,30 3,484,51 3,664,75 3,1004,108 3,1231,115 3,1372,139 3,1582,140 4,118,32 4,484,62 4,664,112 4,1004,167 4,1231,179 4,1372,209 4,1582,214 5,118,30 5,484,49 5,664,81 5,1004,125 5,1231,142 5,1372,174 5,1582,177 </syntaxhighlight> Note that the following expression assumes that the CSV file is located in the Maxima working directory.<syntaxhighlight lang="maxima"> (%i18) read_array("tree_data_nh.csv", A1, ","); (%o18) done (%i19) listarray(A1); (%o19) [1,118,30,1,484,58,1,664,87,1,1004,115,1,1231,120,1,1372,142, 1,1582,145,2,118,33,2,484,69,2,664,111,2,1004,156,2,1231,172, 2,1372,203,2,1582,203,3,118,30,3,484,51,3,664,75,3,1004,108, 3,1231,115,3,1372,139,3,1582,140,4,118,32,4,484,62,4,664,112, 4,1004,167,4,1231,179,4,1372,209,4,1582,214,5,118,30,5,484,49, 5,664,81,5,1004,125,5,1231,142,5,1372,174,5,1582,177] </syntaxhighlight> Below are of the values of the CSV data file <code>tree_data.csv</code> which has a header row, but is otherwise the same as <code>tree_data_nh.csv</code>:<syntaxhighlight lang="text"> "Tree","age","circumference" 1,118,30 1,484,58 1,664,87 1,1004,115 1,1231,120 1,1372,142 1,1582,145 2,118,33 2,484,69 2,664,111 2,1004,156 2,1231,172 2,1372,203 2,1582,203 3,118,30 3,484,51 3,664,75 3,1004,108 3,1231,115 3,1372,139 3,1582,140 4,118,32 4,484,62 4,664,112 4,1004,167 4,1231,179 4,1372,209 4,1582,214 5,118,30 5,484,49 5,664,81 5,1004,125 5,1231,142 5,1372,174 5,1582,177 </syntaxhighlight><syntaxhighlight lang="maxima">(%i20) read_array("tree_data.csv", A2, ","); (%o20) done (%i21) listarray(A2); (%o21) ["Tree","age","circumference",1,118,30,1,484,58,1,664,87,1,1004, 115,1,1231,120,1,1372,142,1,1582,145,2,118,33,2,484,69,2,664,111, 2,1004,156,2,1231,172,2,1372,203,2,1582,203,3,118,30,3,484,51, 3,664,75,3,1004,108,3,1231,115,3,1372,139,3,1582,140,4,118,32, 4,484,62,4,664,112,4,1004,167,4,1231,179,4,1372,209,4,1582,214, 5,118,30,5,484,49,5,664,81,5,1004,125,5,1231,142,5,1372,174, 5,1582,177]</syntaxhighlight>The previous values of 0 and 0,0 as well as the assigned values of <code>A1</code> and <code>A2</code> have been replaced with the values from the CSV files. The third array A3 can be used with values from the dataset.csv file below:<syntaxhighlight lang="text"> "Last Name","Sales","Country","Quarter" "Smith",16753.00,"UK","Qtr 3" "Johnson",14808.00,"USA","Qtr 4" "Williams",10644.00,"UK","Qtr 2" "Jones",1390.00,"USA","Qtr 3" "Brown",4865.00,"USA","Qtr 4" "Williams",12438.00,"UK","Qtr 1" "Johnson",9339.00,"UK","Qtr 2" "Smith",18919.00,"USA","Qtr 3" "Jones",9213.00,"USA","Qtr 4" "Jones",7433.00,"UK","Qtr 1" "Brown",3255.00,"USA","Qtr 2" "Williams",14867.00,"USA","Qtr 3" "Williams",19302.00,"UK","Qtr 4" "Smith",9698.00,"USA","Qtr 1" </syntaxhighlight><syntaxhighlight lang="maxima">(%i22) read_array("dataset.csv", A3, ","); (%o22) done (%i23) listarray(A3); (%o23) ["Last Name","Sales","Country","Quarter", "Smith",16753.0,"UK","Qtr 3", "Johnson",14808.0,"USA","Qtr 4", "Williams",10644.0,"UK","Qtr 2", "Jones",1390.0,"USA","Qtr 3", "Brown",4865.0,"USA","Qtr 4", "Williams",12438.0,"UK","Qtr 1", "Johnson",9339.0,"UK","Qtr 2", "Smith",18919.0,"USA","Qtr 3", "Jones",9213.0,"USA","Qtr 4", "Jones",7433.0,"UK","Qtr 1", "Brown",3255.0,"USA","Qtr 2", "Williams",14867.0,"USA","Qtr 3", "Williams",19302.0,"UK","Qtr 4", "Smith",9698.0,"USA","Qtr 1"]</syntaxhighlight> Values of the array can be referenced by indices as required for some purpose:<syntaxhighlight lang="maxima"> (%i24) A3[0,0]; (%o24) "Last Name" (%i25) A3[4,2]; (%o25) "USA" </syntaxhighlight> A row list object can be created using the <code>'''makelist ()'''</code> operator:<syntaxhighlight lang="maxima"> (%i26) row1A3: makelist(A3[0, j], j, 0, 3)$ (%i27) row1A3; (%o27) ["Last Name","Sales","Country","Quarter"] (%i28) row1A3[1]; (%o28) "Last Name" (%i29) row15A3: makelist(A3[14, j], j, 0, 3)$ (%i30) row15A3; (%o30) ["Smith",9698.0,"USA","Qtr 1"] (%i31) row15A3[2]; (%o31) 9698.0 </syntaxhighlight> A list of the indices of the array can be created:<syntaxhighlight lang="maxima"> (%i32) indices_A3 : arrayinfo(A3)[3]; (indices_A3) [14,3] </syntaxhighlight> The number of indices of array <code>A3</code> can also be referenced using the <code>'''length (''')</code> operator:<syntaxhighlight lang="maxima"> (%i33) length(arrayinfo(A3)[3]); (%o33) 2 </syntaxhighlight>The number of values of the array <code>A3</code> can be returned using the '''<code>length ()</code>''' operator:<syntaxhighlight lang="maxima"> (%i34) length(listarray(A3)); (%o34) 60 </syntaxhighlight> The values of the array <code>A3</code> can be printed as output using the list of values with a loop programming expression:<syntaxhighlight lang="maxima"> (%i35) for i:1 thru length (listarray(A3)) do print('A3[i] ," = ", listarray(A3)[i])$ A3[1]" = ""Last Name" A3[2]" = ""Sales" A3[3]" = ""County" A3[4]" = ""Quarter" A3[5]" = ""Smith" A3[6]" = "16753.0 A3[7]" = ""UK" A3[8]" = ""Qtr 3" A3[9]" = ""Johnson" A3[10]" = "14808.0 A3[11]" = ""USA" A3[12]" = ""Qtr 4" A3[13]" = ""Williams" A3[14]" = "10644.0 A3[15]" = ""UK" A3[16]" = ""Qtr 2" A3[17]" = ""Jones" A3[18]" = "1390.0 A3[19]" = ""USA" A3[20]" = ""Qtr 3" A3[21]" = ""Brown" A3[22]" = "4865.0 A3[23]" = ""USA" A3[24]" = ""Qtr 4" A3[25]" = ""Williams" A3[26]" = "12438.0 A3[27]" = ""UK" A3[28]" = ""Qtr 1" A3[29]" = ""Johnson" A3[30]" = "9339.0 A3[31]" = ""UK" A3[32]" = ""Qtr 2" A3[33]" = ""Smith" A3[34]" = "18919.0 A3[35]" = ""USA" A3[36]" = ""Qtr 3" A3[37]" = ""Jones" A3[38]" = "9213.0 A3[39]" = ""USA" A3[40]" = ""Qtr 4" A3[41]" = ""Jones" A3[42]" = "7433.0 A3[43]" = ""UK" A3[44]" = ""Qtr 1" A3[45]" = ""Brown" A3[46]" = "3255.0 A3[47]" = ""USA" A3[48]" = ""Qtr 2" A3[49]" = ""Williams" A3[50]" = "14867.0 A3[51]" = ""USA" A3[52]" = ""Qtr 3" A3[53]" = ""Williams" A3[54]" = "19302.0 A3[55]" = ""UK" A3[56]" = ""Qtr 4" A3[57]" = ""Smith" A3[58]" = "9698.0 A3[59]" = ""USA" A3[60]" = ""Qtr 1" </syntaxhighlight> Maxima treats declared arrays as fixed-sized, and individual values are accessed via indices. There is no built-in "row" object — rows must be extracted manually using the <code>'''makelist ()'''</code> operator or by looping through values of an array.<syntaxhighlight lang="maxima"> (%i36) array(rowsA3,15); (%o36) rowsA3 (%i37) arrayinfo(rowsA3); (%o37) [declared,1,[15]] (%i38) for i:0 thru 14 do (rowsA3[i+1]:makelist(A3[i, j], j, 0, 3), print("Row ",i+1,": ",rowsA3[i+1]))$; "Row "1": "["Last Name","Sales","Country","Quarter"] "Row "2": "["Smith",16753.0,"UK","Qtr 3"] "Row "3": "["Johnson",14808.0,"USA","Qtr 4"] "Row "4": "["Williams",10644.0,"UK","Qtr 2"] "Row "5": "["Jones",1390.0,"USA","Qtr 3"] "Row "6": "["Brown",4865.0,"USA","Qtr 4"] "Row "7": "["Williams",12438.0,"UK","Qtr 1"] "Row "8": "["Johnson",9339.0,"UK","Qtr 2"] "Row "9": "["Smith",18919.0,"USA","Qtr 3"] "Row "10": "["Jones",9213.0,"USA","Qtr 4"] "Row "11": "["Jones",7433.0,"UK","Qtr 1"] "Row "12": "["Brown",3255.0,"USA","Qtr 2"] "Row "13": "["Williams",14867.0,"USA","Qtr 3"] "Row "14": "["Williams",19302.0,"UK","Qtr 4"] "Row "15": "["Smith",9698.0,"USA","Qtr 1"] </syntaxhighlight> Maxima does not have a built-in function like <code>delete</code> or <code>unset</code> for removing individual values from arrays using indices. Existing values of an array can be changed by assignment however:<syntaxhighlight lang="maxima">(%i52) rowsA3[1]:["Solomon",1045.0,"USA","Qtr 4"]$ (%i53) for i:1 thru 15 do (newRowsA3[i]:rowsA3[i], print("Row ",i,": ",newRowsA3[i]))$; "Row "1": "["Solomon",1045.0,"USA","Qtr 4"] "Row "2": "["Smith",16753.0,"UK","Qtr 3"] "Row "3": "["Johnson",14808.0,"USA","Qtr 4"] "Row "4": "["Williams",10644.0,"UK","Qtr 2"] "Row "5": "["Jones",1390.0,"USA","Qtr 3"] "Row "6": "["Brown",4865.0,"USA","Qtr 4"] "Row "7": "["Williams",12438.0,"UK","Qtr 1"] "Row "8": "["Johnson",9339.0,"UK","Qtr 2"] "Row "9": "["Smith",18919.0,"USA","Qtr 3"] "Row "10": "["Jones",9213.0,"USA","Qtr 4"] "Row "11": "["Jones",7433.0,"UK","Qtr 1"] "Row "12": "["Brown",3255.0,"USA","Qtr 2"] "Row "13": "["Williams",14867.0,"USA","Qtr 3"] "Row "14": "["Williams",19302.0,"UK","Qtr 4"] "Row "15": "["Smith",9698.0,"USA","Qtr 1"]</syntaxhighlight> The <code>'''arrayapply ()'''</code> operator can be used a follows to reference values of a declared array:<syntaxhighlight lang="maxima"> (%i39) arrayapply(rowsA3,[5]); (%o39) ["Jones",1390.0,"USA","Qtr 3"] (%i40) arrayapply(A3, [5,1]); (%o40) 4865.0 </syntaxhighlight>The operator <code>'''fillarray (A, B)'''</code> assigns values to array <code>A</code> from <code>B</code>, which can be a list or an array.The dimensions of the arrays <code>A</code> and <code>B</code> may not be the same. In that case, array <code>A</code> is filled in "row-major" order. There may not be enough values in <code>B</code> compared to <code>A</code>. In that case, the last value of <code>B</code> is used to for the remaining values of <code>A</code>. There may be too many values of <code>B</code> compared to array <code>A</code>. In that case, the remaining values of <code>B</code> once <code>A</code> is filled are not used. The return value of <code>'''fillarray ()'''</code> is not the filled array <code>A</code>, but it is the first argument.<syntaxhighlight lang="maxima">/* Create a declared array B of type fixnum */ (%i41) array (B, fixnum, 9); (%o41) B /* list the values of array B */ (%i42) listarray (B); (%o42) [0,0,0,0,0,0,0,0,0,0] /* fill array B with the values of the list */ (%i43) fillarray (B, [0,1, 2, 3, 4, 5, 6, 7, 8, 9.0]); (%o43) B /* list the values of array B */ (%i44) listarray (B); (%o44) [0,1,2,3,4,5,6,7,8,9.0] /* fill array B with the value 1.0 */ (%i45) fillarray (B, [1.0]); (%o45) B /* list the values of array B */ (%i46) listarray (B); (%o46) [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0] /* fill array B with the first 9 values of the list */ (%i47) fillarray (B, [0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12]); (%o47) B /* list the values of array B */ (%i48) listarray (B); (%o48) [0,1,2,3,4,5,6,7,8,9] /* Create a declared array D of no type */ (%i49) array (D, 9); (%o49) D /* list the values of array D */ (%i50) listarray (D); (%o50) [#####,#####,#####,#####,#####,#####,#####,#####,#####,#####] /* fill array D with the value 1.0 */ (%i51) fillarray (D, [1.0]); (%o51) D /* list the values of array D */ (%i52) listarray (D); (%o52) [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0] /* Create a declared array E of no type */ (%i53) array (E, 15); (%o53) E /* fill array E with the values from the newRowsA3 list */ (%i54) fillarray (E, listarray (newRowsA3)); (%o54) E /* list the values of array D */ (%i55) listarray (E); (%o55) [["Solomon",1045.0,"USA","Qtr 4"], ["Smith",16753.0,"UK","Qtr 3"], ["Johnson",14808.0,"USA","Qtr 4"], ["Williams",10644.0,"UK","Qtr 2"], ["Jones",1390.0,"USA","Qtr 3"], ["Brown",4865.0,"USA","Qtr 4"], ["Williams",12438.0,"UK","Qtr 1"], ["Johnson",9339.0,"UK","Qtr 2"], ["Smith",18919.0,"USA","Qtr 3"], ["Jones",9213.0,"USA","Qtr 4"], ["Jones",7433.0,"UK","Qtr 1"], ["Brown",3255.0,"USA","Qtr 2"], ["Williams",14867.0,"USA","Qtr 3"], ["Williams",19302.0,"UK","Qtr 4"], ["Smith",9698.0,"USA","Qtr 1"], ["Smith",9698.0,"USA","Qtr 1"]] /* remove array E */ (%i56) remarray (E); (%o56) [E] /* D is no longer an array */ (%i57) arrayinfo (E); arrayinfo: E is not an array. -- an error. To debug this try: debugmode(true);</syntaxhighlight> If you need to keep the array but remove only one value, you must reconstruct it without that value. The operator <code>'''remarray ()'''</code> is the typical way to completely remove an array. The <code>'''rearray (A, dim<sub>1</sub>, dim<sub>2</sub> ,…, dim<sub>n</sub>)'''</code> operator is used to change the dimensions of an array. The changed array will be filled with the elements of the existing array in row-major order. If the existing array has one or more smaller dimensions, the additional dimension values of the changed array are assigned with a value that depends on the type of the array. If the existing array has one or more larger dimensions, the deficient dimension values of the changed array are lost. The type of the array cannot be changed using this operator. <syntaxhighlight lang="maxima"> /* list with the values of array B */ (%i58) listarray(B); (%o58) [0,1,2,3,4,5,6,7,8,9] /* list with information about array B */ (%i59) arrayinfo(B); (%o59) [complete,1,[9]] /* increase the dimension of array B */ (%i60) rearray (B, 12); (%o60) \#\{Lisp array \[13\]\} /* list with information about array B with increased dimension */ (%i61) arrayinfo(B); (%o61) [complete,1,[12]] /* list with the values of array B */ (%i62) listarray(B); (%o62) [0,1,2,3,4,5,6,7,8,9,0,0,0] /* decrease the dimension of array B */ (%i63) rearray (B, 6); (%o63) \#\{Lisp array \[7\]\} /* list with information about array B with decreased dimension */ (%i64) arrayinfo(B); (%o64) [complete,1,[6]] /* list with the values of array B */ (%i65) listarray(B); (%o65) [0,1,2,3,4,5,6] </syntaxhighlight> The <code>'''arraymake ()'''</code> operator returns a value that is an array reference without evaluation. This operator, in spite of the name, does not "make" an array. It returns this reference as a value whether or not an array exists as an object:<syntaxhighlight lang="maxima"> /* the arraymake operator returns the unevaluated reference to A */ (%i66) arraymake (A, [i,j]); (%o66) A[i,j] /* however array A is not an array object*/ (%i67) arrayinfo (A); arrayinfo: A is not an array. -- an error. To debug this try: debugmode(true); /* Maxima sees A[j,k] as a reference to an undefined memoizing function */ (%i68) op (arraymake (A, [i,j])); (%o68) A </syntaxhighlight> However, from a practical point of view, this operator is used with existing arrays:<syntaxhighlight lang="maxima"> (%i69) listarray (newRowsA3); (%o69) [["Solomon",1045.0,"USA","Qtr 4"], ["Smith",16753.0,"UK","Qtr 3"], ["Johnson",14808.0,"USA","Qtr 4"], ["Williams",10644.0,"UK","Qtr 2"], ["Jones",1390.0,"USA","Qtr 3"], ["Brown",4865.0,"USA","Qtr 4"], ["Williams",12438.0,"UK","Qtr 1"], ["Johnson",9339.0,"UK","Qtr 2"], ["Smith",18919.0,"USA","Qtr 3"], ["Jones",9213.0,"USA","Qtr 4"], ["Jones",7433.0,"UK","Qtr 1"], ["Brown",3255.0,"USA","Qtr 2"], ["Williams",14867.0,"USA","Qtr 3"], ["Williams",19302.0,"UK","Qtr 4"], ["Smith",9698.0,"USA","Qtr 1"]] (%i70) arraymake (newRowsA3, [4]); (%o70) newRowsA3[4] (%i71) ''%; (%o71) ["Williams",10644.0,"UK","Qtr 2"] (%i72) arraymake (newRowsA3, [i]); (%o72) newRowsA3[i] (%i73) ''%, i = 6; (%o73) ["Brown",4865.0,"USA","Qtr 4"] </syntaxhighlight> The operator <code>arraymake (x, [i])</code> constructs the expression <code>x[i]</code>, but does not evaluate it. The operator <code>'''subvar'''</code> <code>'''(x, i)'''</code> evaluates the indexed expression <code>x[i]</code>, and evaluates its arguments. <syntaxhighlight lang="maxima"> (%i74) listarray(B); (%o174) [0,1,2,3,4,5,6] (%i75) x : B; (x) B (%i76) i : 4; (i) 4 (%i77) subvar (x, i); (%o77) 4 </syntaxhighlight> The operator <code>'''subvarp (expr)'''</code> returns a value of <code>true</code> if <code>expr</code> is a indexed identifier, and <code>false</code> otherwise. This operator evaluates the argument <code>expr</code>. <syntaxhighlight lang="maxima"> (%i78) z[p]; (%o78) z[p] (%i79) subvarp (z[p]); (%o79) true (%i80) x[i]; (%o80) 4 (%i81) subvar (x, i) (%o81) 4 (%i82) w : z[p]; (w) z[p] (%i83) subvarp (w); (%o83) true </syntaxhighlight> The expression <code>'''arrays'''</code> returns a list of allocated arrays: <syntaxhighlight lang="maxima">(%i84) arrays; (%o84) [A3,A2,A1,rowsA3,newRowsA3,B,D]</syntaxhighlight> The operator <code>'''arraysetapply (A, [i<sub>1</sub>,i<sub>2,</sub>…,i<sub>n</sub>], x)'''</code> assigns the value of expression <code>x</code> to <code>A</code><code>[i<sub>1</sub>,i<sub>2</sub>,…,i<sub>n</sub>]</code>, where <code>A</code> is an array and <code>i<sub>1</sub>,i<sub>2</sub>,…,i<sub>n</sub></code> are integers.<syntaxhighlight lang="maxima">(%i85) arraysetapply (newRowsA3, [8], ["George",20818.0,"UK","Qtr 4"]); (%o85) ["George",20818.0,"UK","Qtr 4"]</syntaxhighlight> === Undeclared Arrays === Maxima declared arrays and Maxima undeclared arrays will likely be the two types of data structures used by most users. Maxima undeclared arrays are also referred to as '''''hashed arrays'''''. For both of these two array types, memory allocation and structure occur "behind the curtain" of the Maxima user level, and "the man behind the curtain" is Lisp. Of these two types, hashed arrays are the most flexible from the user point of view, all other factors being equal: * The indices allowed for hashed arrays can be expressions, * The dimensions of a hashed array are dynamic and not fixed, and * Hashed arrays are relatively easier to create. In fact, hashed arrays can be somewhat too easy to create. In the examples of the previous section involving declared arrays, identifiers were used as names for arrays. here is the list of allocated arrays:<syntaxhighlight lang="maxima">(%i86) arrays; (%o86) [A3,A2,A1,rowsA3,newRowsA3,B,D,my_list,h]</syntaxhighlight>The array information for array <code>newRowsA3</code> is shown below:<syntaxhighlight lang="maxima"> (%i87) arrayinfo(newRowsA3); (%o87) [hashed,1,[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15]] </syntaxhighlight>So the array <code>newRowsA3</code> is not a declared array. it was created as part of a loop programming expression repeated below:<syntaxhighlight lang="maxima">(%i53) for i : 1 thru 15 do (newRowsA3[i] : rowsA3[i], print("Row ",i,": ",newRowsA3[i]))$;</syntaxhighlight>When the first loop block was executed with i : 1, the assignment expression: <code>newRowsA3[i] : rowsA3[i]</code> created a hashed array named <code>newRowsA3</code> and assigned <code>newRowsA3[1]</code> the value of <code>rowsA3[1]</code> automatically without any declaration. After that the hashed array dynamically allocated memory for values of the loop identifier i from 2 through 15 with each successive pass in the loop expression. Since hashed arrays are undeclared, and their associated dimensions are not fixed, but rather increase dynamically, expressions can be added to hashed arrays without creating a error message. These added values can be can be any valid Maxima expression, and the value of the indices used are not limited to zero and nonzero integers: <syntaxhighlight lang="maxima"> (%i88) newRowsA3[16] : ["Maisel",12785.0,"USA","Qtr 2"]; (newRowsA3[16]) ["Maisel",12785.0,"USA","Qtr 2"] (%i89 arrayinfo(newRowsA3); (%o89) [hashed,1,[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16]] (%i90) newRowsA3[z] : 2*sin(y) ^2 + 3*sin(x)^3; (newRowsA3[z]) 2*sin(y)^2+3*sin(B)^3 (%i91) arrayinfo(newRowsA3); (%o91) [hashed,1,[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[z]] </syntaxhighlight>So one point to glean from this example is that all that is required to create a hashed array is an assignment expression to an indexed identifier, but it does require this assignment. If for some reason, a declared array is intended, but not declared using the <code>array</code> operator (as in the instance of <code>newRowsA3</code>), then a hashed array will be created at the first assignment of an expression to an indexed identifier. This issue can also occur in cases where reference to a list value is intended, but the list has not been created. Lists are one-dimensional objects by definition. A reference using an identifier with a single index intended to be a list with no list existing named by that identifier, can inadvertently create a hashed array.<syntaxhighlight lang="maxima"> (%i91) Alist[2] : 2*sin(y) ^2 + 3*sin(s)^3; (Alist[2]) 2*sin(y)^2+3*sin(s)^3 (%i92) listp(Alist); (%o92) false (%i93) arrayinfo(Alist); (%o93) [hashed,1,[2]] </syntaxhighlight>The identifier <code>Alist</code> is a name for a hashed array and not a list. However, hashed arrays, like declared arrays can, be multi-dimensional: <syntaxhighlight lang="maxima"> (%i94) a_hashed_array [j,k,l] : [12,s^(1/3), %i]; (%o94) [12,s^(1/3),%i] (%i95) arrayinfo(a_hashed_array); (%o95) [hashed,3,[j,k,l]] </syntaxhighlight>The <code>array</code> operator can be used to transform a hashed array into a declared array:<syntaxhighlight lang="maxima"> (%i96) another_hashed_array[ 0, 2, 3] : 55; (%o96) 55 (%i97) array (another_hashed_array, 2, 4, 5); (%o97) another_hashed_array (%i98) arrayinfo(another_hashed_array); (%o98) [declared,3,[2,4,5]] </syntaxhighlight>From the user point of view, hashed arrays and declared arrays typically can be used for the same purpose. If dynamic dimensions or index expression flexibility are factors, then hashed arrays are likely to be a better choice. Many of the operators that can use declared arrays as arguments, may also be used with hashed arrays. However, it should be noted at this point, that merely using a indexed identifier alone without an assignment, will not create a hashed array. Instead, Maxima interprets an expression so composed as an identifier for an undefined memoizing function, which is the topic of the next section. ==== Memoizing Functions ==== Assignment using an indexed identifier implicitly creates an undeclared (hashed) array. However, entering an expression that is an unassigned indexed identifier, from the point of view of Maxima, creates the identifier of a "memoizing" function. Memoizing functions are technically not an array topic, as these functions fall under the category of function definition. These functions have one foot in the function category and the other foot in the array category. Memoizing functions are defined in a manner similar to other user-defined functions, for example: <code>f(x, y, z) := x^2 + y^2 + z^2;</code> But instead of the arguments being enclosed in parentheses, they are enclosed using brackets: <code>f[x, y, z] := x^2 + y^2 + z^2;</code> However, memoizing functions may be referred to as ''array functions,'' and it is the case that these functions from the point of view of aggregate data structures are hashed arrays. So these are mentioned and exemplified here for that reason:<syntaxhighlight lang="maxima">/* reference an indexed identifier h without assignment */ (%i99) h[x]; (%o99) h[x] /* check identifier h as an array */ (%i100) arrayinfo (h); arrayinfo: h is not an array. -- an error. To debug this try: debugmode(true); /* check identifier h as a function */ (%i101) op(h[x]); (%o101) h /* define h[x] as a function */ (%i102) h[x] := 5*x^3 + sin(x); (h[x]) h[x]:=5*x^3+sin(x) /* check identifier h[x] as a function */ (%i103) op(h[x]); (%o103) "+" /* check identifier h as an array */ (%i104) arrayinfo (h); (%o104) [hashed,1,[x]] /* check the value of identifier h[x] */ (%i105) h[x]; (%o105) sin(x)+5*x^3 /* evaluate identifier h[x] with the argument 3*%pi */ (%i106) h[3*%pi]; (%o106) 135*%pi^3 /* list the values of identifier h as an array */ (%i107) listarray(h); (%o107) [135*%pi^3,sin(x)+5*x^3] /* check identifier h as an array */ (%i108) arrayinfo (h); (%o108) [hashed,1,[3*%pi],[x]]</syntaxhighlight>A defined memoizing function stores its value the ''first time'' it is referenced with arguments, and returns the stored value, without evaluation, when the same arguments are used with that function subsequently. The stored value is "frozen" after the initial evaluation. Thus, it behaves like a hashed array. The arguments of a memoizing function also serve as indices of the associated hashed array. === Lisp Arrays === Lisp arrays are created using the <code>make_array (type, dim<sub>1</sub>, dim<sub>2</sub>, …, dim<sub>n</sub>)</code> operator. Perhaps a better name for this operator would be <code>make_lisp_array ()</code>, which admittedly is a longer name. This operator creates and has a return value of a Lisp array. The array type may be <code>any</code>, <code>flonum</code>, <code>fixnum</code>, or <code>hashed</code> . The <code>functional</code> type referred to in the Maxima Manual appears to have been deprecated, and may result in an error message if used. There can be ''n'' indices, and where the associated indices can be a value from ''0'' to ''dim<sub>i</sub> -1'', and ''i'' can have a value of one of 1 to n inclusive. This operator can be used as an alternative to the <code>array ()</code> operator. The advantage of using <code>make_array()</code> is that the return value of <code>make_array()</code> ''does not have a name''. Once the Maxima identifier that is assigned to the array return value is no longer assigned, the array memory allocation is released, and the allocated memory can be garbage collected. What it is being referred to that Lisp arrays created using <code>make_array()</code> do not have names? <syntaxhighlight lang="maxima"> /* create a undeclared Maxima hashed array */ (%i109) arrayA1 [1] : 55; (%o109) 55 /* check the information about this undeclared Maxima hashed array */ (%i110) arrayinfo (arrayA1); (%o110) [hashed,1,[1]] /* check the value of this undeclared Maxima hashed array */ (%i111) arrayA1; (%o111) arrayA1 /* the name */ /* create a Lisp hashed array */ (%i112) arrayA2 : make_array (hashed); (arrayA2) "#<HASH-TABLE :TEST EQUAL :COUNT 1 {1202987DC3}>" /* check the information about this Lisp hashed array */ (%i113) arrayinfo (arrayA2); (%o113) [hash_table,1] /* check the value of this Lisp hashed array */ (%i114) arrayA2; (%o114) "#<HASH-TABLE :TEST EQUAL :COUNT 1 {1202987DC3}>" /* no name */ (%i115) listarray (arrayA2); (%o115) [] /* this hashed array is empty */ </syntaxhighlight>So Lisp arrays do not have a name as a value. So, Maxima identifiers assigned to a Lisp array have no name for the array as a value. These identifiers have the reference to the array itself as a value, Lisp hashed arrays created using <code>make_array()</code> with the hashed type specified, do not use dimensions. Lisp hashed arrays are often referred to as '''''hashed tables''''', and their indices are called '''''keys'''''. An example of a Lisp array with the type <code>any</code> follows: <syntaxhighlight lang="maxima"> /* make a Lisp 3 by 4 array of type any */ (%i116) arrayA3 : make_array (any, 3,4); (arrayA3) \#\{Lisp array \[3\\,4\]\} (%i117) arrayinfo (arrayA3); (%o117) [declared,2,[2,3]] (%i118) listarray(arrayA3); (%o118) [false,false,false,false,false,false,false,false,false,false,false,false] (%i119) arrayA3[1,1] : "a string" ; (%o119) "a string" (%i120) listarray(arrayA3); (%o120) [false,false,false,false,false,"a string", false,false,false,false,false,false] </syntaxhighlight>Contrary to statements made in some sources, type checking is is not accomplished automatically, and will not cause Maxima to return an error message, as the Lisp array with the type <code>fixnum</code> which follows is an exemplifies:<syntaxhighlight lang="maxima">(%i121) arrayA4 : make_array (fixnum, 3,4); (arrayA4) \#\{Lisp array \[3\\,4\]\} (%i122) arrayinfo (arrayA4); (%o122) [declared,2,[2,3]] (%i123) listarray (arrayA4); (%o123) [0,0,0,0,0,0,0,0,0,0,0,0] (%i124) arrayA4[0,2] : 3.14159; (%o124) 3.14159 (%i125) arrayA4[0,0] : "a string"; (%o125) "a string" /* value types not checked and no error message */ (%i126) listarray (arrayA4); (%o126) ["a string",0,3.14159,0,0,0,0,0,0,0,0,0]</syntaxhighlight>As was the case with declared arrays, there is no type checking and no error messages associated with assigned values of the array based on the declared type. The declared array type simply determines initial fill values, if any. Hashed arrays and Lisp hash tables have an operator in common: <code>has_key</code> <code>(A, L)</code> This expression has a a value of <code>true</code>, if the hashed array or Lisp hash table <code>A</code> has the key (index) or keys (indices) of the list object <code>L</code>. Otherwise the expression has a value of <code>false</code>. The array <code>A</code> must be a hashed (undeclared) array, a Lisp hash table value returned by the <code>make_array</code> operator, or created as an undeclared array with <code>use_fast_arrays</code> assigned the value <code>true</code>. If array A has only one key, that key must be the value of a list.<syntaxhighlight lang="maxima"> (%i127) arrayinfo (newRowsA3); (%o127) [hashed,1,[1],[2],[3],[4],[5],[6],[7],[8],[9],[10], [11],[12],[13],[14],[15],[16],[z]] (%i128) has_key (newRowsA3, [z]); (%o128) true (%i129) has_key (newRowsA3, [3]); (%o129) true (%i130) has_key(newRowsA3, [0]); (%o130) false (%i131) lisp_Array_1 [x]; (%o131) 3*x^2 (%i132) arrayinfo (lisp_Array_1); (%o132) [hash_table,1,x] (%i133) has_key (lisp_Array_1, [x]); (%o133) true (%i134) has_key (lisp_Array_1, [y]); (%o134) false </syntaxhighlight> === Arrays and Features === Maxima arrays can be assigned features in a manner similar to other identifiers:<syntaxhighlight lang="maxima"> (%i135) array (a6,fixnum, 5); (%o135) a6 (%i136) arrayinfo (a6); (%o136) [complete,1,[5]] (%i137) declare (a6, [real, noninteger]); (%o137) done (%i138) featurep (a6, real); (%o138) true (%i139) featurep (a6, noninteger); (%o139) true (%i140) a6[2] : 2; (a6[2]) 2 (%i141) listarray (a6); (%o141) [0,0,2,0,0,0] </syntaxhighlight>However, once again, declaring an array to have one or more features does not result in type checking of values assigned to an array. Perhaps the best way to ensure types of values assigned to arrays is type-checking of expressions using predicate operators prior to assignment to arrays. === Array Memory Storage Considerations === The following from the Maxima Manual<ref>{{Cite web |title=Maxima Manual Section 7.5.1 - Functions and Variables for Arrays |url=https://maxima.sourceforge.io/docs/manual/Data-Types-and-Structures.html#Functions-and-Variables-for-Arrays}}</ref> is quoted here for the purpose of establishing the context of that which follows:<blockquote>''"Option variable: use_fast_arrays ¶'' ''Default value: false'' ''When use_fast_arrays is true, arrays declared by array are values instead of properties, and undeclared arrays (hashed arrays) are implemented as Lisp hashed arrays.'' ''When use_fast_arrays is false, arrays declared by array are properties, and undeclared arrays are implemented with Maxima’s own hashed array implementation.'' ''Note that the code use_fast_arrays switches to is not necessarily faster than the default one; Arrays created by make_array are not affected by use_fast_arrays."''</blockquote> This manual entry requires some elaboration in order to have a sufficient understanding of the effect of the <code>'''use_fast_arrays'''</code> "flag" – referred to as an "Option Variable" in the above quotation. === Structures === Structures, although not an array data type is an aggregation data type.  By "aggregation" it is meant a data type that references other data types by reference to a name and some method of accessing individual values of instances of that aggregation by means of indices used to reference values individually. Thus, as has been previously described for example lists, hashed arrays, Lisp arrays, and declared arrays are all aggregation data types with syntactical means to refer to individual values of a named aggregation instance by way of indices, which are sometimes also referred to as subscripts or keys. This structure type of data allows the creation of named entities with attributes, and named instances of those entities and the assignment of values for those attributes. Thus the Maxima structure data type is used to define custom, named composite data types that group related fields together under a single identifier. Structures are created using the <code>defstruct</code> operator, which defines a template with named fields. Once defined, instances of the structure are created using the <code>new</code> operator, and fields are accessed via the <code>@</code> operator. {{Bookcat}} fv09rq1c96f6o94q2gs7j8055pbxcd1 User:L10nM4st3r/thank 2 443339 4668499 4084236 2026-09-04T07:02:39Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668499 wikitext text/x-wiki <div style="border-color:#1473ac;background-color:#4fa6da;{{Text default color}};"> <div style="font-size:170%;font-color:#40c335;text-align:center;background-color:#93cbed;{{Text default color}};">Thanks!</div> [[File:SMILE (1584989760).jpg|100px|left|link=]] {{{1}}} </div> gickbwcf4c74b7k8j4bc7fjivj81h66 AI Art Generation Handbook/Archive/Framing Techniques 0 450406 4668330 4492700 2026-09-03T14:10:42Z CommonsDelinker 49843 Removing [[:c:File:DALL·E_-_Portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit_,_3_4_face_view.png|DALL·E_-_Portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit_,_3_4_face_view.png]], it has been deleted from Commons by [[:c:User 4668330 wikitext text/x-wiki Framing techniques is to instruct how to take photos utilizing different angles, heights and even distance to achieve certain looks. {| class="wikitable" |+ ! colspan="3" |Camera Technique |- !Prompt !Remarks !Images |- |'''3/4 face view''' of portrait studio photoshoot of Javan rhinoceros wearing a business suit | |[[File:DALL·E_3_4_face_view_of_portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit.png|frameless|300x300px]] |- |'''Profile face view''' of portrait studio photoshoot of Javan rhinoceros wearing a business suit | |[[File:DALL·E_Profile_face_view_of_portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit.png|frameless|300x300px]] |- |'''Frontal''' portrait studio photoshoot of Javan rhinoceros wearing a business suit | |[[File:DALL·E_-_Frontal_portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit.png|frameless|300x300px]] |- |'''Frontal face''' portrait studio photoshoot of Javan rhinoceros wearing a business suit | | |- |'''Back view shot''' of portrait studio photoshoot of Javan rhinoceros wearing a business suit | |[[File:DALL·E_-_Back_view_shot_of_portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit.png|frameless|300x300px]] |- |'''Low angle camera''' of portrait studio photoshoot of Javan rhinoceros wearing a business suit.png | |[[File:DALL·E_-_Low_angle_camera_of_portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit.png|frameless|300x300px]] |- |'''High angle camera''' of portrait studio photoshoot of Javan rhinoceros wearing a business suit | |[[File:DALL·E_-_High_angle_camera_of_portrait_studio_photoshoot_of_rhinoceros_wearing_a_business_suit.png|frameless|300x300px]] |} {{BookCat}} g4cke1ajomdre401nwngl72qg9t2iyw AI Art Generation Handbook/VACT/Camera Types 0 461838 4668331 4655188 2026-09-03T14:10:45Z CommonsDelinker 49843 Removing [[:c:File:DALL-E2_Photograph_taken_by_drone_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|DALL-E2_Photograph_taken_by_drone_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standin 4668331 wikitext text/x-wiki == Introductions == In this chapter, we are going to see the effect of camera and the lenses == '''Camera Type''' == <big>To ensure consistency between images, following prompt was used :</big> <big><code>Photograph taken by '''<< Camera Type>>''' showing anthropomorphic rhinoceros wearing business suit and standing on two feet</code></big> ''Note 1: As usual , if there are missing camera , you may want can propose the missing camera to be added in '''Discussion''' tab above.'' ''Note 2: If anyone knows how to use the standard prompts for use on all camera in SDXL (Preferably Fooocus) , you can share the prompts with me too inside '''Discussion''' tab'' {| class="wikitable sortable" !<big>Camera Type</big> !<big>Image Generated By</big> <big>OpenAI Dall-E</big> !<big>n/a</big> !<big>Remark</big> |- |'''<big>360 Degree</big>''' |[[File:DALL-E2_Photographs_taken_by_360_degree_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Action</big>''' |[[File:DALL-E2_Photographs_taken_by_action_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |<big>'''Bodycam'''</big> |[[File:DALL-E2_Photographs_taken_by_police_body_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''CCTV''' |[[File:DALL-E2_Photographs_taken_by_CCTV_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''VHS Quality''' for more real-to-life generations |- |'''<big>Dashcam</big>''' | | |Verdict : PASS |- |'''<big>Digital</big>''' |[[File:DALL-E2_Photograph_taken_by_digital_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Drone</big>''' | | |Verdict : PASS |- |<big>'''DSLR'''</big> |[[File:DALL-E2_Photograph_taken_by_DSLR_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>High Speed</big>''' |[[File:DALL-E2_Photograph_taken_by_high_speed_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''splashed on water''' for more real-to-life generations |- |'''<big>iPhone</big>''' | | |Verdict : PASS |- |'''<big>Film</big>''' | | |Verdict : PASS |- |'''<big>Nokia 0.5MP</big>''' |[[File:DALL-E2_Photographs_taken_by_0.5MP_Nokia_phone_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''low resolution''' for enhanced effect |- |'''<big>Night Vision</big>''' |[[File:DALL-E2_Photographs_taken_by_night_vision_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Pinhole</big>''' |[[File:DALL-E2_Photograph_taken_by_pinhole_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Point and Shoot</big>''' |[[File:DALL-E2_Photograph_taken_by_point_and_shoot_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Polaroid</big>''' |[[File:DALL-E2_Photographs_taken_by_Polaroid_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Thermographic</big>''' | | |Verdict : PASS |- |'''<big>Toy</big>''' |[[File:DALL-E2_Photograph_taken_by_toy_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Traffic Speed</big>''' |[[File:DALL-E2_Photograph_taken_by_traffic_speed_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Trailer</big>''' |[[File:DALL-E2_Photograph_taken_by_trail_camera_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Underwater</big>''' | | |Verdict : PASS |- |'''<big>Vintage folding</big>''' |[[File:DALL-E2_Photographs_taken_by_vintage_folding_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |} == '''Lenses Type''' == <big>To ensure consistency between images, following prompt was used :</big> <big><code>High quality DLSR photograph taken with '''<<Lenses Type>'''> showing a single anthropomorphic rhinoceros wearing business suit and standing on two feet , background of forest</code></big> ''Note 1: As usual , if there are missing camera , you may want can propose the missing lenses to be added in '''Discussion''' tab above.'' ''Note 2: If anyone knows how to use the standard prompts for use on all lenses in SDXL (Preferably Fooocus) , you can share the prompts with me too inside '''Discussion''' tab'' {| class="wikitable sortable" !<big>Lenses Type</big> !<big>Image Generated By</big> <big>OpenAI Dall-E</big> !<big>n/a</big> !<big>Remark</big> |- |'''<big>Anamorphic</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Anamorphic_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Fish-Eye</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Fish-Eye_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Lensebaby</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Lensbaby_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Macro</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Macro_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Soft Focus</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Soft-Focus_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Prime</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Prime_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Telephoto</big>''' |[[File:DALL-E_2_-_High_quality_DLSR_photograph_taken_with_Telephoto_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Tilt Shift</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Tilt_Shift_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Wide Angle</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Wide-Angle_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Zoom</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Zoom_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_head_closeup,_background_of_forest.jpg|frameless]] | |Verdict : PASS |} {{BookCat}} mlncjzrhit3u3l15dqwsz7o0ads6ptw 4668333 4668331 2026-09-03T14:10:53Z CommonsDelinker 49843 Removing [[:c:File:DALL-E2_Photographs_taken_by_360_degree_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|DALL-E2_Photographs_taken_by_360_degree_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit 4668333 wikitext text/x-wiki == Introductions == In this chapter, we are going to see the effect of camera and the lenses == '''Camera Type''' == <big>To ensure consistency between images, following prompt was used :</big> <big><code>Photograph taken by '''<< Camera Type>>''' showing anthropomorphic rhinoceros wearing business suit and standing on two feet</code></big> ''Note 1: As usual , if there are missing camera , you may want can propose the missing camera to be added in '''Discussion''' tab above.'' ''Note 2: If anyone knows how to use the standard prompts for use on all camera in SDXL (Preferably Fooocus) , you can share the prompts with me too inside '''Discussion''' tab'' {| class="wikitable sortable" !<big>Camera Type</big> !<big>Image Generated By</big> <big>OpenAI Dall-E</big> !<big>n/a</big> !<big>Remark</big> |- |'''<big>360 Degree</big>''' | | |Verdict : PASS |- |'''<big>Action</big>''' |[[File:DALL-E2_Photographs_taken_by_action_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |<big>'''Bodycam'''</big> |[[File:DALL-E2_Photographs_taken_by_police_body_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''CCTV''' |[[File:DALL-E2_Photographs_taken_by_CCTV_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''VHS Quality''' for more real-to-life generations |- |'''<big>Dashcam</big>''' | | |Verdict : PASS |- |'''<big>Digital</big>''' |[[File:DALL-E2_Photograph_taken_by_digital_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Drone</big>''' | | |Verdict : PASS |- |<big>'''DSLR'''</big> |[[File:DALL-E2_Photograph_taken_by_DSLR_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>High Speed</big>''' |[[File:DALL-E2_Photograph_taken_by_high_speed_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''splashed on water''' for more real-to-life generations |- |'''<big>iPhone</big>''' | | |Verdict : PASS |- |'''<big>Film</big>''' | | |Verdict : PASS |- |'''<big>Nokia 0.5MP</big>''' |[[File:DALL-E2_Photographs_taken_by_0.5MP_Nokia_phone_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''low resolution''' for enhanced effect |- |'''<big>Night Vision</big>''' |[[File:DALL-E2_Photographs_taken_by_night_vision_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Pinhole</big>''' |[[File:DALL-E2_Photograph_taken_by_pinhole_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Point and Shoot</big>''' |[[File:DALL-E2_Photograph_taken_by_point_and_shoot_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Polaroid</big>''' |[[File:DALL-E2_Photographs_taken_by_Polaroid_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Thermographic</big>''' | | |Verdict : PASS |- |'''<big>Toy</big>''' |[[File:DALL-E2_Photograph_taken_by_toy_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Traffic Speed</big>''' |[[File:DALL-E2_Photograph_taken_by_traffic_speed_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Trailer</big>''' |[[File:DALL-E2_Photograph_taken_by_trail_camera_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Underwater</big>''' | | |Verdict : PASS |- |'''<big>Vintage folding</big>''' |[[File:DALL-E2_Photographs_taken_by_vintage_folding_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |} == '''Lenses Type''' == <big>To ensure consistency between images, following prompt was used :</big> <big><code>High quality DLSR photograph taken with '''<<Lenses Type>'''> showing a single anthropomorphic rhinoceros wearing business suit and standing on two feet , background of forest</code></big> ''Note 1: As usual , if there are missing camera , you may want can propose the missing lenses to be added in '''Discussion''' tab above.'' ''Note 2: If anyone knows how to use the standard prompts for use on all lenses in SDXL (Preferably Fooocus) , you can share the prompts with me too inside '''Discussion''' tab'' {| class="wikitable sortable" !<big>Lenses Type</big> !<big>Image Generated By</big> <big>OpenAI Dall-E</big> !<big>n/a</big> !<big>Remark</big> |- |'''<big>Anamorphic</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Anamorphic_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Fish-Eye</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Fish-Eye_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Lensebaby</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Lensbaby_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Macro</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Macro_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Soft Focus</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Soft-Focus_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Prime</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Prime_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Telephoto</big>''' |[[File:DALL-E_2_-_High_quality_DLSR_photograph_taken_with_Telephoto_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Tilt Shift</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Tilt_Shift_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Wide Angle</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Wide-Angle_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Zoom</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Zoom_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_head_closeup,_background_of_forest.jpg|frameless]] | |Verdict : PASS |} {{BookCat}} ajki823g5xg8rxj9o3t8789yuw0l4xr 4668334 4668333 2026-09-03T14:10:56Z CommonsDelinker 49843 Removing [[:c:File:DALL-E2_Photographs_taken_by_police_body_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|DALL-E2_Photographs_taken_by_police_body_camera_showing_anthropomorphic_rhinoceros_wearing_business_su 4668334 wikitext text/x-wiki == Introductions == In this chapter, we are going to see the effect of camera and the lenses == '''Camera Type''' == <big>To ensure consistency between images, following prompt was used :</big> <big><code>Photograph taken by '''<< Camera Type>>''' showing anthropomorphic rhinoceros wearing business suit and standing on two feet</code></big> ''Note 1: As usual , if there are missing camera , you may want can propose the missing camera to be added in '''Discussion''' tab above.'' ''Note 2: If anyone knows how to use the standard prompts for use on all camera in SDXL (Preferably Fooocus) , you can share the prompts with me too inside '''Discussion''' tab'' {| class="wikitable sortable" !<big>Camera Type</big> !<big>Image Generated By</big> <big>OpenAI Dall-E</big> !<big>n/a</big> !<big>Remark</big> |- |'''<big>360 Degree</big>''' | | |Verdict : PASS |- |'''<big>Action</big>''' |[[File:DALL-E2_Photographs_taken_by_action_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |<big>'''Bodycam'''</big> | | |Verdict : PASS |- |'''CCTV''' |[[File:DALL-E2_Photographs_taken_by_CCTV_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''VHS Quality''' for more real-to-life generations |- |'''<big>Dashcam</big>''' | | |Verdict : PASS |- |'''<big>Digital</big>''' |[[File:DALL-E2_Photograph_taken_by_digital_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Drone</big>''' | | |Verdict : PASS |- |<big>'''DSLR'''</big> |[[File:DALL-E2_Photograph_taken_by_DSLR_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>High Speed</big>''' |[[File:DALL-E2_Photograph_taken_by_high_speed_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''splashed on water''' for more real-to-life generations |- |'''<big>iPhone</big>''' | | |Verdict : PASS |- |'''<big>Film</big>''' | | |Verdict : PASS |- |'''<big>Nokia 0.5MP</big>''' |[[File:DALL-E2_Photographs_taken_by_0.5MP_Nokia_phone_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS Note: Added token of '''low resolution''' for enhanced effect |- |'''<big>Night Vision</big>''' |[[File:DALL-E2_Photographs_taken_by_night_vision_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Pinhole</big>''' |[[File:DALL-E2_Photograph_taken_by_pinhole_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Point and Shoot</big>''' |[[File:DALL-E2_Photograph_taken_by_point_and_shoot_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Polaroid</big>''' |[[File:DALL-E2_Photographs_taken_by_Polaroid_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Thermographic</big>''' | | |Verdict : PASS |- |'''<big>Toy</big>''' |[[File:DALL-E2_Photograph_taken_by_toy_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Traffic Speed</big>''' |[[File:DALL-E2_Photograph_taken_by_traffic_speed_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Trailer</big>''' |[[File:DALL-E2_Photograph_taken_by_trail_camera_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |- |'''<big>Underwater</big>''' | | |Verdict : PASS |- |'''<big>Vintage folding</big>''' |[[File:DALL-E2_Photographs_taken_by_vintage_folding_camera_showing_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet.jpg|frameless]] | |Verdict : PASS |} == '''Lenses Type''' == <big>To ensure consistency between images, following prompt was used :</big> <big><code>High quality DLSR photograph taken with '''<<Lenses Type>'''> showing a single anthropomorphic rhinoceros wearing business suit and standing on two feet , background of forest</code></big> ''Note 1: As usual , if there are missing camera , you may want can propose the missing lenses to be added in '''Discussion''' tab above.'' ''Note 2: If anyone knows how to use the standard prompts for use on all lenses in SDXL (Preferably Fooocus) , you can share the prompts with me too inside '''Discussion''' tab'' {| class="wikitable sortable" !<big>Lenses Type</big> !<big>Image Generated By</big> <big>OpenAI Dall-E</big> !<big>n/a</big> !<big>Remark</big> |- |'''<big>Anamorphic</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Anamorphic_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Fish-Eye</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Fish-Eye_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Lensebaby</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Lensbaby_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Macro</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Macro_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Soft Focus</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Soft-Focus_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Prime</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Prime_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Telephoto</big>''' |[[File:DALL-E_2_-_High_quality_DLSR_photograph_taken_with_Telephoto_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Tilt Shift</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Tilt_Shift_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Wide Angle</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Wide-Angle_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet,_background_of_forest.jpg|frameless]] | |Verdict : PASS |- |'''<big>Zoom</big>''' |[[File:DALL-E2_-_High_quality_DLSR_photograph_taken_with_Zoom_Lens_showing_a_single_anthropomorphic_rhinoceros_wearing_business_suit_and_standing_on_two_feet_,_head_closeup,_background_of_forest.jpg|frameless]] | |Verdict : PASS |} {{BookCat}} 9gnmn8a19nvcsenqeym71itrb3fzbrt AI Art Application and Improvements Handbook 0 463242 4668332 4655172 2026-09-03T14:10:48Z CommonsDelinker 49843 Removing [[:c:File:DALL·E_-_Rhinoceros_wearing_a_business_suit_,_pondering_at_masterpiece_oil_painting_while_standing_inside_art_museum.png|DALL·E_-_Rhinoceros_wearing_a_business_suit_,_pondering_at_masterpiece_oil_painting_while_standing_inside_art_museu 4668332 wikitext text/x-wiki <big>This AI Art Application and Improvements Handbook is intended to help people create free useful media for the public domain using AI art generators in practice with a focus getting things done in practice at all skill-levels. It informs about notable potential and existing applications and equips the reader with information about how to best implement these specific applications.</big> <!--{{Book search|float=center|style=image|width=700|placeholder=Type your search terms here}}--> == Launching == There are many ways you can use these tools. Main ways include: * You can install Stable Diffusion locally if you have a good graphics card. Whether that is a good idea depends on your hardware and needs. If you do so, [https://github.com/AUTOMATIC1111/stable-diffusion-webui/ AUTOMATIC1111 WebUI] is probably the most advanced software to use but alternatives are listed [[AI Art Generation Handbook/List of local AI Art WebUI|here]] and also have benefits. * You can use a web platform like https://perchance.org/ to use it online (on many sites that is possible for free) – see [[AI Art Generation Handbook/List of AI Art Websites|list of AI art websites]] * You can use an extension for an art software like [https://github.com/Acly/krita-ai-diffusion for Krita] or [https://github.com/AbdullahAlfaraj/Auto-Photoshop-StableDiffusion-Plugin for Photoshop] == Prompts == Which prompts work best differs by AI generator. [https://promptomania.com/prompt-builder/ The promptomania prompt builder] is a great place to get started with prompts and to have a cheatsheet of different art styles one could use. It is missing many styles but may become more complete over time and be good enough for learning purposes. Many sites such as openart.ai and playgroundai.com let you see many other filterable/searchable images along with their prompts which you could build upon and learn from. [https://github.com/altryne/awesome-ai-art-image-synthesis Here] is a further comprehensive resource and [https://github.com/Maks-s/sd-akashic here] a list of resources for Stable Diffusion. You can use style studies (selected comprehensive ones: [https://sdxl.parrotzone.art/ 1] [https://www.urania.ai/top-sd-artists 2] [https://proximacentaurib.notion.site/28e037176b58439785ee04af6b0ae4ea?v=d04dc32d95334deca8025371ac778745#GridView 3] [https://stablediffusion.fr/artists 4]) to learn more about which styles you could use and could combine multiple styles. However, which style to use it not the tricky part or necessary to learn, you could just add phrases like "comic style", "3D render", "matte painting" to the prompt. When sites offer pre-made styles they usually just attach several terms to the end of the prompt. Moreover, one can use an AI tool to describe an image that looks roughly like what one intends to show (or parts of it) and then use parts of that in the prompt – e.g. this [https://imageprompt.org/describe-image AI Describe Image] tool. == Misgenerations and creating improved versions == As you can see below there still are some issues with these images. People who have better AI art skills may be able to generate much better images. Usually one may need to do slight manual editing. Moreover, over time these images could be improved by their uploaders or other people using for example tools including: * the [https://clipdrop.co/cleanup the Clipdrop cleanup tool] * edit the image using AI or create a new image with the image as guidance and then combine parts of both in an image editor like GIMP by having the images in separate layers where you cut parts out or erase them to make the layer beneath visible (use the cloning and healing tools to make it look seamless) * inpainting (requires some skills) * AI art web platforms' [# face restoration] * upscaling features * manually editing the images in image editors like GIMP or Photoshop * recreating the image using the same or similar prompts ([[:Commons:File:DALL-E Austronaut Library.png|example]]) * AI text removal tools ([https://www.fotor.com/features/remove-text-from-image/ example]) * … If you can improve an existing image or an image you uploaded earlier on Wikimedia Commons, upload it as a new version, not as a separate new file. If the image has text, it can be removed via the listed ways. However, to prevent text from being anywhere in the image is best to use negative prompts, albeit that can be problematic for example when you'd like to generate a street scene with store texts being visible in the background. This is a good example of a specific skill to learn when generating AI art: creating texts that fit neatly into the image. You need to continuously adjust the prompt until you get good results, sometimes and at some point it is better to just generate a new image from the same prompt rather than adjust the prompt (make sure the seed is set to random and not always the same except if you want to make the image look like the one just generated). You can also generate a new image from the image just generated via img2img and then put it underneath the newly generated image as a layer in GIMP. Then cut out the upper layer to have the former visible at the places where you'd like it to ([[:Commons:File:Robot_chef_cooking_with_spices.png|example]]). === Negative prompt === If you see things in your generated image that you don't want there or anticipate that the AI generator may add them or misunderstand your prompt in certain ways add these as negative prompt terms. Examples of useful negative prompt terms to use when you generate… * humans: <code>extra fingers</code> (TBA) * rooms: <code>picture frame, frames</code> Add more terms as unwanted things show up when you generate to exclude them from the next images. You can also use a result in img2img and try to remove the unwanted parts e.g. by using the prior prompt but an additional negative prompt term if cleanup tools don't remove such well. == Parameters == Some images have their parameters specified. A step count of around 40 often yields best results. Setting the prompt strength too high such as over 10 makes it more difficult to get a good picture. == Differences between generators == Stable Diffusion is open source so that one is recommended and focused on here. However, Midjourney may as of 2023 often generate better images in many cases and DALL-E probably as well in some or many cases. A difference between SD and DALL-E for example is that in SD the prompts are phrased like tags separated by commas, not whole sentences or similar. See [[AI Art Generation Handbook/VCAT/Artist Style|these pages]] for a comparison between software results for the same prompts as well as the style studies linked [[#Prompts|above]]. == Applications where AI art can be useful == === Paleoart of the ancient past === AI art can be used to create realistic-looking scenes that depict the past either how we it may have looked like to the best of our knowledge, for example including high-resolution depictions of extinct ancient organisms. For accuracy, substantial skills are required. For such images, img2img techniques can be used. (Examples have been removed) In the first example parts of the leg were cut out so it looks like the organism is walking through the fern. It may also be possible to use tools like {{w|DreamBoth}} to train AIs on a set of images or even 3D models that depict ancient organisms like a species of dinosaurs. Do not use images in [[:Commons:Category:Inaccurate paleoart]] as a base and add [[:Commons:Template:Factual accuracy]] to any image you know is inaccurate. Note that the generated images could also turn out to be inaccurate even if the base image is thought to be inaccurate where they require that template as well. Good paleo knowledge combined with good AI generation skills may be required to be able to generate or transform base images to realistic paleoart. Most currently available paleoart only depicts the extinct organism (e.g. a dinosaur), but does not place them into an environment of flora and fauna that is theorized to have existed at the same time. Those images that do are usually low resolution. One exception is [[:File:Dineobellator Sergey Krasovskiy.png|this image]] which shows how such scenes could look like. ---- Ancient and archaic humans lived in caves and/or did not have civilizational lifestyle for hundreds of thousands of years. Despite of that, there was not even one high-resolution image in the public domain that depicts how daily life may or is thought to have looked like or could have looked like for most of human existence, or at least none on WMC. This started to change by the emergence of advanced AI image generators in the 2020s, the two images below are two of three in [[:Commons:Category:Ancient and archaic humans in art]] where mere facial reconstructions are not included: <gallery> File:Paleolithic period.png|Base image 1 </gallery> Good anthropological knowledge may be required to be able to create an image that is not clearly inaccurate and likely a realistic depiction. For example, a major flaw is that AI art generators are likely to generate hairstyles that were impossible to highly unlikely in the deep past of pre-humans and ancient humans. See also [[:Commons:Category:Inaccurate paleoart|"Inaccurate paleoart" on WMC]]. Crowd-reviewing systems and practices may evolve that provide feedback so that AI art engineers can modify their images according to best available scientific knowledge. Future developments may enable combination of [https://www.frontiersin.org/articles/10.3389/feart.2020.591813/full paleontological data and tools] and paleoart techniques [https://www.biorxiv.org/content/10.1101/2023.08.07.552217v1 with AI] art software to enable more accurate and useful images. For now, if you do not have good anthropological knowledge try to collaborate with somebody who has before putting your image out in the public domain for other people to use. === Caricatures and public characters === In the 2020s it became more easily possible to create artworks using public characters due to the emergence of AI art generators like Stable Diffusion. This * it democratized the creation of caricatures and political art * enabled problematic {{w|online misinformation}} * enabled humorous art using known characters, including fictional characters (prime example: 'Harry Spotter') It works well with some specific public characters without any kind of extra training. Some of these are well-known to be easily generatable in realistic-looking ways such as Vladmir Putin. <gallery> File:Pope Francis in puffy winter jacket.jpg File:Vincent van Gogh in watercolour.png </gallery> One example use-case is to generate a portrait of a person and the background in ways that is linked to that person such as art illustrating scientific theories for scientists or art styles for artists like the Vincent van Gogh image kind of hints at. At the same time it can be a problem to use specific characters in specific environments, for example the generators then generate that person multiple times rather than only once or also make the person show up in picture frames. This may change with future generators where you e.g. can specify where the person is located or how often. Keep that in mind when creating your prompts; there also are many options to solve such issues beyond negative prompts such as cutting the generated person out and placing the person into an image. Others require fine-tuning using tools and techniques like {{w|DreamBooth}}, the first image below is made with Stable Diffusion/Imagine without any kind of extra training and the second used DreamBooth, where the second looks much more realistic regarding {{w|Jimmy Wales}}' face: <gallery> </gallery> The reasons for why some famous characters do not look realistic with current models without extra training are unknown and that may change over time. It also allowed the creation of videos with public characters: <gallery> File:Vladimir Putin warning Americans on election interference and increasing political divide.webm </gallery> These abilities have scratched the sensitivities of some religious people and worries of political elites regarding democratized political art. And it also enables democratized artistic depictions of historic public characters which can e.g. be used for humorous images, higher-resolution portraits, innovative/creative combinations, or realistic AI art for historical scenes: <gallery> File:Abraham Lincoln using a smartphone (anachronism).jpg|After a prior deletion, ~first digital image showing {{w|anachronism}} in art File:Abraham Lincoln at Air Force One.jpg </gallery> It can also be used to create art depicting people not commonly featured in high-quality art such as specific scientists which are usually not the subject of art and fiction with an exception of e.g. the movies 'The Theory Of Everything' and 'Oppenheimer': <gallery> </gallery> === Historical scenes === AI art can be used to create realistic-looking scenes that depict the past either how we it may have looked like to the best of our knowledge or how stories depict it. The latter may also include images for imaginary stories of the past, illustrating how imaginaries of past people may have looked like in more visual ways. Whether or not there are still some minor glitches may not matter very much when you're interested in visualizing for example how ordinary daily life experienced by average people may have looked like in high resolution or when creating the first image of some historical events that are in the public domain rather than locked away. Using tools like {{w|DreamBoth}} one can train AIs on a set of images based on a historical figure. Below are some examples which may deviate somewhat from how {{w|Ferdinand II of Naples}} (Ferrandino d'Aragona) looked like at an older age according to the artistic drawing that is the first image here and the second image that was drawn a whole hundred years after he died: <gallery> </gallery> AI art generators usually make people look better so as you can see it may often deviate from existing images of a character. However, if you provide more training hidata or the AI generator is well trained on it (which is sometimes the case for some currently famous people), then the characters may look more realistic. Instead of making the file focus on the character it would be better to focus on the historical event or the historical scene. For example, the image could portray how a village in the Middle Ages may have realistically looked like at high resolution. It can also be used to create high-resolution realistic images of historical figures in realistic or unrealistic settings. <gallery> File:Abraham Lincoln using a smartphone (anachronism).jpg </gallery> As just explained, AI generators still have problems with generating faces and other issues. Please keep that in mind since correcting that can require significant skills and may limit the usefulness or realism of the images. Images can also focus on historical events entirely without any kind of historic character, realistic or not, in the foreground. === Educational games === AI art can be used to generate the images for board games, for example for the cards. These can be educational games or otherwise useful. Note that in such cases you should only generate the image, not full cards because the text for example will be gibberish. <gallery> File:Alice and Sparkle cover.jpg|How educational children's books could be styled </gallery> === Creative play === Children and adults can generate images as a creative activity alone or in a group. For children it can make it possible for them to put their ideas into visual imagery and have fun while nourishing their creativity and imaginative capacities. See [[#Creative children's games and sketches]]. === Objects and topics for which no free media is available === For example it can show how pulp science fiction comics looked like or how what a science fiction subgenre is about or what the styles and themes of it are. It can illustrate how a certain style or object looks like and other things but it requires a disclaimer that the image is AI-generated. One way this can be useful is showing people which media is currently missing but would be useful in terms of the concept. While English Wikipedia allows for fair use images, other Wikipedias don't and even when fair use images are available it doesn't mean an additional free media image can't also be helpful. On nonwikimedia sites or for people just looking for a free-licensed image for whatever purpose, such images can also be useful instead of having to for example buy some image from a stock site or being limited by the available very few images on the subject if there's any at all. === Illustrating contents of books === <gallery> File:Biopunk world of 'The Windup Girl' – megodont in Thailand megacity.png|Illustrating the world of the book 'The Windup Girl' File:Fictional book cover for scifi children's book "13th prophecy" by Valentine Ermatinger (post-apocalyptic AI art).jpg|Children's book "13th prophecy" File:New customer for the "Beloved Brethren Moratorium" (Ubik AI art).jpg|{{w|Ubik}} File:UBIK advertisement.png|Ubik (similar to some covers and depicting a main subject of the book with the text gibberish fixed) </gallery> For the last image, text was removed with a text removal tool as listed above and then added via GIMP. === Styles merged and adopted === <gallery> File:Flammarion Woodcut style draft of galactic art.jpg|Art meant to depict a civilization adopting an old art style in a modern scifi context File:Surrealism - Cold dreamworld halfreality of Ubik; place does not exist - perception of cryogenically stored customer nr 154, day 256.jpg|Beksinski style adopted and merged with other styles to a) illustrate contents of a book and b) depict a surreal broken-reality-type Philip K Dickean dreamworld as a subgenre of surreal art </gallery> === Illustrating technologies, ideas and concepts === Especially useful if no other or only low-quality images are available for the concept <gallery> File:A colonized comet with a long abandoned reception center above underground facility (AI art).jpg|'''First''' illustration of artifacts / colonies on comets in the context of {{w|technosignature}}s File:A pod plane (flying car) recharging at a wind turbine with low costs during excess generation.jpg|Illustration of a technological innovation (could also be used to illustrate prototypes / mock-ups) File:AI golem waiting for tasks and providing advice.jpg|Illustration of a mythological being adopted to modern scifi as done earlier in some studies, AI golem waiting for tasks File:An elbish city on an exoplanet (science fantasy).jpg|Illustration of 'science fantasy' and {{w|arcology}}, among my '''first''' HD illustrations of the genre File:Solarpunk utopia with sustainable transport.jpg|Nearly '''first''' illustration of {{w|Solarpunk}} and sustainable city design illustration File:Overgrown city, post-apocalyptic.jpg|High-resolution illustration of contemporary post-apocalyptic art File:Upstream collection real-time exploitation by alien worker bots in Utah data center.png|Concept of robotic aliens File:Toxic acidic rain in the city, cyberpunk.png|Illustration of the cyberpunk genre, a street scene without e.g. neon lights which are present in most if not all comparable free media depicting the genre File:Post-apocalyptic landscape on an industrial exoplanet (recently collapsed civilization).jpg|Concept of a collapsed civilization on another planet (the being is either a human visitor, could be removed, or a convergent evolution bipedal alien) File:Solarpunk, a positive possible near-future.jpg|Green city urban planning & solarpunk illustration File:Anna's Archive cyberspace library (batch of delivered digital books).jpg|'''First''' online library / shadow library artistic representation File:Robot chef cooking with spices.png|Cooking robot, and slightly humorous, thereby possibly best image for [[:Commons:Category:Cooking robots|Cooking robots]] File:CyberpunkRoboChef (SDXL).jpg|Same but less realistic and more gritty; used in many WP articles File:ClueBot 5.0.jpg|[[:Commons:Category:Technological singularity|'''First''']] illustration of an embodied or metaphorical AI using a computer File:An airgapped offline ClueBot 6.0 proving "stupid" Einstein wrong, writing down theory of everything and a letter to three developers.jpg|Illustration of embodied or metaphorical AI being airgapped and engaging with humanity & human science+philosophy File:Count dracula ai-art.jpg|[[:Commons:Category:Dracula in art|'''First''']] commons illustration of vampire Dracula after an earlier image by the same user was deleted File:Fictional book cover for scifi children's book "13th prophecy" by Valentine Ermatinger (post-apocalyptic).jpg|[[:Commons:Category:Post-apocalyptic art|Almost '''first''']] commons illustration of the post-apocalyptic art scifi genre File:Burned city.jpg|(same) </gallery> === Entertainment and creative thinking === === Creative children's games and sketches === ;Pro imagination creative AI art [https://www.kialo.com/children-could-make-drawings-then-use-these-drawings-as-image-input-for-img2img-generation-describing-what-the-image-is-57196.211 kids game] Children could make drawings, then use these drawings as image input for img2img generation, describing what the image is intended to show. The child's description is then used for the prompt that is added to the sketch input. This may enable children to build up their creativity and imaginative skills. There could be an app for that where voice input is possible or adults could help kids where the kids first make the sketch and the adult takes a photo and asks what it's supposed to show so that the AI art generates images which the child can refine and use as inspiration for further images, for modifications to the image and feedback and so on. It reduces the level of cognitive and technical minimum skills required for artistic engagement enabling novel ways of imaginative play, especially for children. === As part of games === Beyond [[#Educational games|more accessible card art design and similar applications]], the AI art generation itself could be part of games. These are simply entertaining and could also raise skills of AI art generation. ;Sketch Wars Multiple (e.g. two) players take turns at generating an AI art image by altering the prompt or writing a new prompt. The starting player draws a scene, a being, or something similar. The second tries to generate an image where what is depicted is turned on its head or is changed in another specified way such as being destroyed or successfully defeated. One can either take turns and the first image where the specified intention was achieved wins that round or the second player could have multiple tries with the best outcome being a successful image at first try. This works best when the prompt is only changed and not completely replaced so that the object is similar, one may also specify the seed to remain the same. ;Concept Guessing Similar to the word guessing game Taboo, people must create an image that enables others to quickly correctly guess the concept they are trying to depict. Multiple specified terms can't be used in the prompt. Only e.g. three tries are allowed for the image and the concepts aren't as simple as "tree" but relatively difficult to visualize. == Known problems and current state of avoiding them == There are many ways known problems could get identified and fixed or mitigated. These include: * Updates to the AI txt2txt image generator software * Models specifically tuned for specific purposes, especially Stable Diffusion ones since that software is open source; see [https://civitai.com/models Citivai Models] * [[#Misgenerations and creating improved versions|Manual improvements]] during prompting or via inpainting, img2img, and image editor software <gallery> File:'Not exactly what I meant with nuclear mushroom, but I'll take it' (Stable Diffusion misgeneration).png|Often models make basic conceptual misunderstandings such as intermingling fungi with nuclear mushroom clouds when prompting 'nuclear mushroom' File:Gare au Gorille (chatGPT 4.0 et Dall-E 3.0).jpg|Creating the same person multiple times File:Humanoid robot and woman retrieve infomation - includes a visible typical error of recent AI generated pictures.png|Screwed-up hands, duplicate limbs, and unrealistic device screens </gallery> Whether or not and which of such problems will persist is unknown and has not yet been thoroughly investigated. At one point it may be possible to for example use Wikidata items instead of words. For example [https://arxiv.org/abs/2208.01618 there is work] on user-provided concepts (like an object or a style) learned from few images so that these concepts (e.g. objects or styles) can be incorporated via the newly associated word/s. == See also == * [[AI Art Generation Handbook]] {{shelves|Visual arts|Computer art}} {{status|50%}} 0rtd2goav9pgy4kcdenvt8v2xgcr0y7 User:Rodejong/Navigation 2 466421 4668503 4668187 2026-09-04T07:08:17Z ShakespeareFan00 46022 4668503 wikitext text/x-wiki <!-- Do not edit below this line --> <!-- BEGIN Top Edit Link -->{{DISPLAYTITLE:<span style="font-family:Arial, Helvetica, Verdana, Tahoma, sans-serif;font-variant:small-caps;text-shadow:gray 0.2em 0.2em 0.2em">{{#switch:{{NAMESPACE}}|User=<span style="font-size:0px;">User:</span>|User talk=talk <span style="font-size:0px;">User:</span>|}}<span style="color:#3399FF;">R</span><span style="color:#2C9FF5;">o</span><span style="color:#26A5EB;">d</span><span style="color:#20ABE1;">e</span><span style="color:#1AAFD7;">j</span><span style="color:#14B1CD;">o</span><span style="color:#10B3C6;">n</span><span style="color:#0CB5BF;">g</span><span style="color:#08B7B8;"></span>{{#if:{{#titleparts:{{PAGENAME}}||2}}|<span style="font-size:100%;padding:0 0.1em 0 0.2em;">/</span>{{#titleparts:{{PAGENAME}}||2}}|}}</span>}} {{#ifeq: {{NAMESPACE}} | | | <div style="position: fixed; right:0; bottom:0; display:block; height:40px; width:40px;">{{#IfEq: {{NAMESPACE}} | | | [[File:B_up.svg|40px|link={{NAMESPACE}}:{{PAGENAME}}#content]]}}</div>}} <!-- END Top Edit Link --> <!-- BEGIN Kader --> {| cellpadding="0" cellspacing="0" style="margin-top:.2em; width:100%; background:none;color:inherit;" | colspan="2" | | width="35%" height="5px" class="radius_top" style="background:#F1FAFF;{{text default color}}; border:2px solid #C6E4F2; border-bottom:0" | <div style="font-size:0">[[image:pix.gif|5px]]</div> |- | class="PPcornerTop" style="width:10px; background-repeat:no-repeat; background-position:top left; font-size:0; height:42px" | [[image:pix.gif|1px]] | rowspan="2" class="BGorange1" valign="middle" style="text-align:center; padding:.6em 30px .6em 0; background-color:#FFF9E8;{{text default color}}; border-top:2px solid #FFC17E; border-bottom:2px solid #FFC17E" | <h1 style="font-size:120%; border:none; margin:0; padding:0"> </h1> <div style="position:relative; top:.25em; font-size:100%"><div style="text-align: center;"><span style="font-family: georgia; font-size: xx-large; color: grey;"> ''{{#switch:{{LOCALHOUR}}|05|06|07|08|09|10=Good morning|11|12|13|14|15|16|17=Good afternoon|18|19|20|21|22|23=Good evening|00|01|02|03|04|05|06=Good night}}, and welcome.'' </span></div></div> | rowspan="2" class="BGorange2" style="align:left; padding:0 .6em .6em 23px; font-size:120%; background-color:#F9F9F3;{{text default color}}; border:2px solid #E6D8C1" |[[File:Miraheze-Logo.svg|50px]] <span style="font-family: georgia; font-size: x-large; color: grey;">''N A V I G A T I O N''</span> |- | class="PPcornerBottom" style="width:10px; background-repeat:no-repeat; background-position:bottom left; font-size:0; height:10px" | [[image:pix.gif|1px]] |- | colspan="2" valign="top" rowspan="30" style="padding:1em 30px 0 0" | <div style="width:100%; margin-bottom:1em; text-align:left; font-size:95%; font-weight:bold"> <!-- BEGIN LINKER KOLOM --><noinclude> <pre> {{User:Rodejong/Navigation |1=<div class="plainlinks"> </div> |2=<div class="plainlinks"> </div> }}</pre></noinclude> {{{1|}}} </div> <!-- END LINKER KOLOM --> <!-- BEGIN RECHTER KOLOM --> |- | class="BGorange2" style="text-align:left; font-size:100%; background-color:#F9F9F3;{{text default color}}; border:2px solid #E8DDC9; font-weight:bold; padding:0 .5em 0em 23px;" | |- | style="font-size:92%; background:#F1FAFF;{{text default color}}; border:2px solid #C6E4F2; border-top:0; border-bottom:1px solid #C6E4F2; padding:0 .5em 0 23px" | [[File:Crystal Clear app kuser.svg|35px]] '''[[User:Rodejong|My User page]]''' <div style="z-index:3; position:absolute; float:left; margin-left:-45px"> </div> |- | style="font-size:92%; background:#EAF6FD;{{text default color}}; border:2px solid #C6E4F2; border-top:1px solid white; border-bottom:1px solid #C6E4F2; padding:.8em .5em .8em 23px" | [[File:Crystal Clear app messenger.png|35px]] &nbsp;&nbsp;&nbsp; [[User talk:Rodejong|Leave a message on my diskussionpage]] <div style="z-index:3; position:absolute; float:left; margin-left:-45px"> </div> |- | style="font-size:92%; background:#F1FAFF;{{text default color}}; border:2px solid #C6E4F2; border-top:1px solid white; border-bottom:1px solid #C6E4F2; padding:.8em .5em .8em 23px" | [[File:Miraheze-Logo.svg|35px]] <span class="plainlinks">Requesting Wiki's, → [https://wikicreators.miraheze.org/ Wiki Creators]</span> <div style="z-index:3; position:absolute; float:left; margin-left:-45px"> </div> |- | style="font-size:92%; background:#EAF6FD;{{text default color}}; border:2px solid #C6E4F2; border-top:1px solid white; border-bottom:0; padding:.8em .5em .8em 23px" | <!--[[File:|35px]]--> {| class="toccolours vatop infobox" cellpadding="1" cellspacing="1" style="float:left; clear:right; width:250px; padding:0px; margin:0px 0px 1em 1em; font-size:85%;" | style="background-color:#666666; color:#ffffff" align="center" colspan="3" | '''<big><span style="color: #ffffff;">Statistics</span></big>''' |- | style="font-weight:bold;" | Articles || colspan="2" | {{NUMBEROFARTICLES}} |- | style="font-weight:bold;" | pages || colspan="2" | {{NUMBEROFPAGES}} |- |- | style="font-weight:bold;" | Administrators <small><sub>([[Special:Userlist/sysop|sysop]])</sub></small> || colspan="2" | '''{{NUMBEROFADMINS}}''' |- | style="background-color:#666666; color:#ffffff" align="center" colspan="3" | |- | style="font-weight:bold;" | Edits || colspan="2" |<div class="plainlinks"> [{{SERVER}}/wiki/Special:Contributions/Rodejong my contributions] '''(en)'''</div> |- | style="font-weight:bold;" | created pages || colspan="2" | <div class="plainlinks">[{{SERVER}}/w/index.php?title=Special%3AContributions&target=Rodejong&namespace=all&tagfilter=&newOnly=1&start=&end=&limit=50 my started pages] '''(en)'''</div> |} <div style="z-index:3; position:absolute; float:left; margin-left:-44px"> </div> |- | class="radius_bottom" style="font-size:92%; background:#EAF6FD;{{text default color}}; border:2px solid #C6E4F2; padding:0 .5em 0 23px" | {{userbox |id=[[File:Miraheze-Logo.svg|x40px]] |id-c=white |border-c=#BBB |info= This user is a Trusted Volunteer and WikiCreator on Miraheze. <br />Check his <span class="plainlinks">[https://meta.miraheze.org/wiki/User:Rodejong Miraheze user page]</span>. |info-c=#F6F6F6 }} |- |<div style="text-align: center;">[[User:Rodejong/Navigation|Navigation template]] - [[User:Rodejong/Archive|Archive]] - [[User:Rodejong/Templates|Templates]]</div><br /><!-- --><div style="text-align: center;"><small><span style="border: 1px solid"><!-- --><span class="plainlinks">[https://commons.miraheze.org/wiki/User:Rodejong '''<span style="background-color:red; color:white"> &nbsp;Commons&nbsp;</span>''']</span><!-- -->[[dev:User:Rodejong|<span style="background-color:blue; color:White">&nbsp;&nbsp;DEV&nbsp;&nbsp;</span>]]<!-- --><span class="plainlinks">[https://login.miraheze.org/wiki/User:Rodejong <span style="background-color:orange; color:White">&nbsp;LOGIN&nbsp;</span>]</span><!-- -->[[m:User:Rodejong|'''<span style="background-color:green; color:White"> &nbsp;META&nbsp;</span>''']]<!-- --><span class="plainlinks">[https://test.miraheze.org/wiki/User:Rodejong <span style="background-color:White; color:darkblue">&nbsp;TEST&nbsp;</span>]</span><!-- --></span></small></div> |- | {{{2|}}} |}<noinclude><!-- END Kader --><br clear="all" /> <!-- Do not edit above this line --> a4n52cbdrlwvr43tnbzrogmjnpd73jg 4668504 4668503 2026-09-04T07:10:08Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668504 wikitext text/x-wiki <!-- Do not edit below this line --> <!-- BEGIN Top Edit Link -->{{DISPLAYTITLE:<span style="font-family:Arial, Helvetica, Verdana, Tahoma, sans-serif;font-variant:small-caps;text-shadow:gray 0.2em 0.2em 0.2em">{{#switch:{{NAMESPACE}}|User=<span style="font-size:0px;">User:</span>|User talk=talk <span style="font-size:0px;">User:</span>|}}<span style="color:#3399FF;">R</span><span style="color:#2C9FF5;">o</span><span style="color:#26A5EB;">d</span><span style="color:#20ABE1;">e</span><span style="color:#1AAFD7;">j</span><span style="color:#14B1CD;">o</span><span style="color:#10B3C6;">n</span><span style="color:#0CB5BF;">g</span><span style="color:#08B7B8;"></span>{{#if:{{#titleparts:{{PAGENAME}}||2}}|<span style="font-size:100%;padding:0 0.1em 0 0.2em;">/</span>{{#titleparts:{{PAGENAME}}||2}}|}}</span>}} {{#ifeq: {{NAMESPACE}} | | | <div style="position: fixed; right:0; bottom:0; display:block; height:40px; width:40px;">{{#IfEq: {{NAMESPACE}} | | | [[File:B_up.svg|40px|link={{NAMESPACE}}:{{PAGENAME}}#content]]}}</div>}} <!-- END Top Edit Link --> <!-- BEGIN Kader --> {| cellpadding="0" cellspacing="0" style="margin-top:.2em; width:100%; background:none;color:inherit;" | colspan="2" | | class="radius_top" style="width:35%; height:5px; background:#F1FAFF;{{text default color}}; border:2px solid #C6E4F2; border-bottom:0" | <div style="font-size:0">[[image:pix.gif|5px]]</div> |- | class="PPcornerTop" style="width:10px; background-repeat:no-repeat; background-position:top left; font-size:0; height:42px" | [[image:pix.gif|1px]] | rowspan="2" class="BGorange1" style="verticl-align:middle; text-align:center; padding:.6em 30px .6em 0; background-color:#FFF9E8;{{text default color}}; border-top:2px solid #FFC17E; border-bottom:2px solid #FFC17E" | <h1 style="font-size:120%; border:none; margin:0; padding:0"></h1> <div style="position:relative; top:.25em; font-size:100%"><div style="text-align: center;"><span style="font-family: georgia; font-size: xx-large; color: grey;"> ''{{#switch:{{LOCALHOUR}}|05|06|07|08|09|10=Good morning|11|12|13|14|15|16|17=Good afternoon|18|19|20|21|22|23=Good evening|00|01|02|03|04|05|06=Good night}}, and welcome.'' </span></div></div> | rowspan="2" class="BGorange2" style="align:left; padding:0 .6em .6em 23px; font-size:120%; background-color:#F9F9F3;{{text default color}}; border:2px solid #E6D8C1" |[[File:Miraheze-Logo.svg|50px]] <span style="font-family: georgia; font-size: x-large; color: grey;">''N A V I G A T I O N''</span> |- | class="PPcornerBottom" style="width:10px; background-repeat:no-repeat; background-position:bottom left; font-size:0; height:10px" | [[image:pix.gif|1px]] |- | colspan="2" valign="top" rowspan="30" style="padding:1em 30px 0 0" | <div style="width:100%; margin-bottom:1em; text-align:left; font-size:95%; font-weight:bold"> <!-- BEGIN LINKER KOLOM --><noinclude> <pre> {{User:Rodejong/Navigation |1=<div class="plainlinks"> </div> |2=<div class="plainlinks"> </div> }}</pre></noinclude> {{{1|}}} </div> <!-- END LINKER KOLOM --> <!-- BEGIN RECHTER KOLOM --> |- | class="BGorange2" style="text-align:left; font-size:100%; background-color:#F9F9F3;{{text default color}}; border:2px solid #E8DDC9; font-weight:bold; padding:0 .5em 0em 23px;" | |- | style="font-size:92%; background:#F1FAFF;{{text default color}}; border:2px solid #C6E4F2; border-top:0; border-bottom:1px solid #C6E4F2; padding:0 .5em 0 23px" | [[File:Crystal Clear app kuser.svg|35px]] '''[[User:Rodejong|My User page]]''' <div style="z-index:3; position:absolute; float:left; margin-left:-45px"> </div> |- | style="font-size:92%; background:#EAF6FD;{{text default color}}; border:2px solid #C6E4F2; border-top:1px solid white; border-bottom:1px solid #C6E4F2; padding:.8em .5em .8em 23px" | [[File:Crystal Clear app messenger.png|35px]] &nbsp;&nbsp;&nbsp; [[User talk:Rodejong|Leave a message on my diskussionpage]] <div style="z-index:3; position:absolute; float:left; margin-left:-45px"> </div> |- | style="font-size:92%; background:#F1FAFF;{{text default color}}; border:2px solid #C6E4F2; border-top:1px solid white; border-bottom:1px solid #C6E4F2; padding:.8em .5em .8em 23px" | [[File:Miraheze-Logo.svg|35px]] <span class="plainlinks">Requesting Wiki's, → [https://wikicreators.miraheze.org/ Wiki Creators]</span> <div style="z-index:3; position:absolute; float:left; margin-left:-45px"> </div> |- | style="font-size:92%; background:#EAF6FD;{{text default color}}; border:2px solid #C6E4F2; border-top:1px solid white; border-bottom:0; padding:.8em .5em .8em 23px" | <!--[[File:|35px]]--> {| class="toccolours vatop infobox" cellpadding="1" cellspacing="1" style="float:left; clear:right; width:250px; padding:0px; margin:0px 0px 1em 1em; font-size:85%;" | style="background-color:#666666; color:#ffffff" align="center" colspan="3" | '''<big><span style="color: #ffffff;">Statistics</span></big>''' |- | style="font-weight:bold;" | Articles || colspan="2" | {{NUMBEROFARTICLES}} |- | style="font-weight:bold;" | pages || colspan="2" | {{NUMBEROFPAGES}} |- |- | style="font-weight:bold;" | Administrators <small><sub>([[Special:Userlist/sysop|sysop]])</sub></small> || colspan="2" | '''{{NUMBEROFADMINS}}''' |- | style="background-color:#666666; color:#ffffff" align="center" colspan="3" | |- | style="font-weight:bold;" | Edits || colspan="2" |<div class="plainlinks"> [{{SERVER}}/wiki/Special:Contributions/Rodejong my contributions] '''(en)'''</div> |- | style="font-weight:bold;" | created pages || colspan="2" | <div class="plainlinks">[{{SERVER}}/w/index.php?title=Special%3AContributions&target=Rodejong&namespace=all&tagfilter=&newOnly=1&start=&end=&limit=50 my started pages] '''(en)'''</div> |} <div style="z-index:3; position:absolute; float:left; margin-left:-44px"> </div> |- | class="radius_bottom" style="font-size:92%; background:#EAF6FD;{{text default color}}; border:2px solid #C6E4F2; padding:0 .5em 0 23px" | {{userbox |id=[[File:Miraheze-Logo.svg|x40px]] |id-c=white |border-c=#BBB |info= This user is a Trusted Volunteer and WikiCreator on Miraheze. <br />Check his <span class="plainlinks">[https://meta.miraheze.org/wiki/User:Rodejong Miraheze user page]</span>. |info-c=#F6F6F6 }} |- |<div style="text-align: center;">[[User:Rodejong/Navigation|Navigation template]] - [[User:Rodejong/Archive|Archive]] - [[User:Rodejong/Templates|Templates]]</div><br /><!-- --><div style="text-align: center;"><small><span style="border: 1px solid"><!-- --><span class="plainlinks">[https://commons.miraheze.org/wiki/User:Rodejong '''<span style="background-color:red; color:white"> &nbsp;Commons&nbsp;</span>''']</span><!-- -->[[dev:User:Rodejong|<span style="background-color:blue; color:White">&nbsp;&nbsp;DEV&nbsp;&nbsp;</span>]]<!-- --><span class="plainlinks">[https://login.miraheze.org/wiki/User:Rodejong <span style="background-color:orange; color:White">&nbsp;LOGIN&nbsp;</span>]</span><!-- -->[[m:User:Rodejong|'''<span style="background-color:green; color:White"> &nbsp;META&nbsp;</span>''']]<!-- --><span class="plainlinks">[https://test.miraheze.org/wiki/User:Rodejong <span style="background-color:White; color:darkblue">&nbsp;TEST&nbsp;</span>]</span><!-- --></span></small></div> |- | {{{2|}}} |}<noinclude><!-- END Kader --><br clear="all" /> <!-- Do not edit above this line --> 2pha1p1s0niv3kbn6wcaj3rg1ckcqu0 User:Conan/sandbox/Multitasking 2 482816 4668277 4632906 2026-09-03T13:18:57Z ShakespeareFan00 46022 Attempting to solve lints - Please ignore the notification this edit generated. 4668277 wikitext text/x-wiki <noinclude>{{DISPLAYTITLE:Multitasking functionality}}</noinclude> {| style="width: 25%; float: right; text-align:center;border-spacing: 0; margin:auto;" cellpadding="5pc" ! style="background:#ffffcc;{{Text default color}};" |multitasking |- | bgcolor="#eeb" |[[#Execution|execution]] |- | bgcolor="#dda" |[[#Threads_or_tasks|threads or tasks]] |- | bgcolor="#cc9" |[[#Synchronization|synchronization]] |- | bgcolor="#bb8" |[[#Scheduler|Scheduler]] |- | bgcolor="#aa8" |[[#Interrupts|interrupts core]] |- style="" | bgcolor="#997" |[[#CPU_specific|CPU specific]] |} Linux kernel is a preemptive {{w|Computer multitasking|multitasking}} operating system. As a multitasking OS, it allows multiple processes to share processors (CPUs) and other system resources. Each CPU executes a single task at a time. However, multitasking allows each processor to switch between tasks that are being executed without having to wait for each task to finish. For that, the kernel can, at any time, temporarily interrupt a task being carried out by the processor, and replace it by another task that can be new or a previously suspended one. The operation involving the swapping of the running task is called ''{{w|context switch}}''. == Execution == ⚲ API ↪ ⚙️ implementations {{The Linux Kernel/man|2|execve}} ↪ {{The Linux Kernel/id|do_execve}} runs an executable file in the context of current process, replacing the previous executable. This system call is used by family of functions of libc {{The Linux Kernel/man|3|exec}} {{The Linux Kernel/man|2|clone}}. Clone creates a child process that may share parts of its execution context with the parent. It is often used to implement threads (though programmers will typically use a higher-level interface such as {{The Linux Kernel/man|7|pthreads}}, implemented on top of clone). {{The Linux Kernel/man|2|wait}} ↪ {{The Linux Kernel/id|kernel_waitid}} suspends the execution of the calling process until one of its children processes terminates. Syscall {{The Linux Kernel/man|2|getpid}} ↪ {{The Linux Kernel/id|task_tgid_vnr}} returns PID of the current process which internally is called TGID - thread group id. A process can contain many threads. {{The Linux Kernel/man|2|gettid}} ↪ {{The Linux Kernel/id|task_pid_vnr}} returns thread id. Which internally is historically called PID. ⚠️ Warning: confusion. User space PID ≠ kernel space PID. {{The Linux Kernel/man|1|ps}} -AF lists current processes and thread as {{w|Light-weight process|LWP}}. For a single thread process all these IDs are equal. High-resolution delays: : {{The Linux Kernel/man|2|nanosleep}} ↪ {{The Linux Kernel/id|sys_nanosleep}} :: {{The Linux Kernel/id|hrtimer_nanosleep}} : {{The Linux Kernel/man|2|clock_nanosleep}} ↪ {{The Linux Kernel/id|sys_clock_nanosleep}} Wait for a signal: : {{The Linux Kernel/man|2|pause}} ↪ {{The Linux Kernel/id|sys_pause}} : {{The Linux Kernel/man|2|sigsuspend}} ↪ {{The Linux Kernel/id|sys_sigsuspend}} See [[The Linux Kernel/Processes|Processes]] for process creation and termination. === Inter-process communication === Inter-process communication (IPC) refers specifically to the mechanisms an operating system provides to allow processes it manages to share data. Methods for achieving IPC are divided into categories which vary based on software requirements, such as performance and modularity requirements, and system circumstances. Linux inherited from Unix the following IPC mechanisms: Signals (⚲ API ↪ ⚙️ implementations): : {{The Linux Kernel/man|2|kill}} sends signal to a process : {{The Linux Kernel/man|2|tgkill}} ↪ {{The Linux Kernel/id|do_tkill}} sends a signal to a thread : {{The Linux Kernel/man|2|process_vm_readv}} ↪ {{The Linux Kernel/id|process_vm_rw}} - zero-copy data transfer between process address spaces 🔧 TODO: {{The Linux Kernel/man|2|sigaction}} {{The Linux Kernel/man|2|signal}} {{The Linux Kernel/man|2|sigaltstack}} {{The Linux Kernel/man|2|sigpending}} {{The Linux Kernel/man|2|sigprocmask}} {{The Linux Kernel/man|2|sigsuspend}} {{The Linux Kernel/man|2|sigwaitinfo}} {{The Linux Kernel/man|2|sigtimedwait}} {{The Linux Kernel/source|kernel/signal.c}} : [[../Storage#Zero-copy|Anonymous pipes]] and named pipes (FIFOs) {{The Linux Kernel/man|2|mknod}} ↪ {{The Linux Kernel/id|do_mknodat}} {{The Linux Kernel/id|S_IFIFO}} : {{w|Express Data Path}} {{The Linux Kernel/id|PF_XDP}} : {{w|Unix domain socket}} {{The Linux Kernel/id|PF_UNIX}} : Memory-mapped files {{The Linux Kernel/man|2|mmap}} ⤑ {{The Linux Kernel/id|ksys_mmap_pgoff}} : Sys V IPC: :: Message queues :: Semaphores :: Shared memory: {{The Linux Kernel/man|2|shmget}}, {{The Linux Kernel/man|2|shmctl}}, {{The Linux Kernel/man|2|shmat}}, {{The Linux Kernel/man|2|shmdt}} 📖 References : {{w|Inter-process communication}} : {{The Linux Kernel/man|7|sysvipc}} == Threads or tasks == In Linux kernel "thread" and "task" are almost synonyms. ⚲ API : {{The Linux Kernel/include|linux/sched.h}} - the main scheduler API :: {{The Linux Kernel/id|task_struct}} : {{The Linux Kernel/source|arch/x86/include/asm/current.h}} ::{{Linux ident|current}} and {{The Linux Kernel/id|get_current}} () return current {{The Linux Kernel/id|task_struct}} : {{The Linux Kernel/include|uapi/linux/taskstats.h}} per-task statistics : {{The Linux Kernel/include|linux/thread_info.h}} :: {{The Linux Kernel/id|current_thread_info}}() returns {{The Linux Kernel/id|thread_info}} :{{The Linux Kernel/include|linux/sched/task.h}} - interface between the scheduler and various task lifetime (fork()/exit()) functionality : {{The Linux Kernel/include|linux/kthread.h}} - simple interface for creating and stopping kernel threads without mess. ::{{The Linux Kernel/id|kthread_run}} creates and wakes a thread ::{{The Linux Kernel/id|kthread_create}} ⚙️ Internals : {{The Linux Kernel/id|kthread_run}} ↯ hierarchy: : {{The Linux Kernel/source|kernel/kthread.c}} :: {{The Linux Kernel/id|kthreadd}} &ndash; parent kernel thread and the creator of all other kernel threads. Dequeues {{The Linux Kernel/id|kthread_create_info}} from {{The Linux Kernel/id|kthread_create_list}}. ::: {{The Linux Kernel/id|create_kthread}} :::: {{The Linux Kernel/id|kernel_thread}} :::: {{The Linux Kernel/id|kthread}} &ndash; invokes {{The Linux Kernel/id|threadfn}} :: {{The Linux Kernel/id|__kthread_create_on_node}} &ndash; enqueues {{The Linux Kernel/id|kthread_create_info}} into {{The Linux Kernel/id|kthread_create_list}} : {{The Linux Kernel/source|kernel/fork.c}} :: {{The Linux Kernel/id|kernel_thread}} ::: {{The Linux Kernel/id|kernel_clone}} ==Scheduler== The ''{{w|Scheduling_(computing)#Linux|scheduler}}'' is the part of the operating system that decides which process runs at a certain point in time. It usually has the ability to pause a running process, move it to the back of the running queue and start a new process. Active processes are placed in an array called a ''{{w|run queue}}'', or ''runqueue'' - {{The Linux Kernel/id|rq}}. The run queue may contain priority values for each process, which will be used by the scheduler to determine which process to run next. To ensure each program has a fair share of resources, each one is run for some time period (quantum) before it is paused and placed back into the run queue. When a program is stopped to let another run, the program with the highest priority in the run queue is then allowed to execute. Processes are also removed from the run queue when they ask to ''sleep'', are waiting on a resource to become available, or have been terminated. Since version 6.6 the Linux kernel uses the {{w|Earliest eligible virtual deadline first scheduling}} (EEVDF) algorithm within the {{w|Completely Fair Scheduler}} (CFS) framework. EEVDF replaced the earlier pick-next-task logic while the CFS infrastructure &mdash; {{The Linux Kernel/id|sched_entity}}, {{The Linux Kernel/id|cfs_rq}}, the red-black tree, load balancing, and {{The Linux Kernel/source|kernel/sched/fair.c}} &mdash; remains. CFS was the first implementation of a fair queuing process scheduler widely used in a general-purpose operating system. CFS uses a well-studied, classic scheduling algorithm called "fair queuing" originally invented for packet networks. The CFS scheduler has a scheduling complexity of O(log N), where N is the number of tasks in the runqueue. Choosing a task can be done in constant time, but reinserting a task after it has run requires O(log N) operations, because the run queue is implemented as a {{w|red–black tree}}. In contrast to the previous {{w|O(1) scheduler}}, the CFS scheduler implementation is not based on run queues. Instead, a red-black tree implements a "timeline" of future task execution. Additionally, the scheduler uses nanosecond granularity accounting, the atomic units by which an individual process' share of the CPU was allocated (thus making redundant the previous notion of timeslices). This precise knowledge also means that no specific heuristics are required to determine the interactivity of a process, for example. Like the old O(1) scheduler, CFS uses a concept called "sleeper fairness", which considers sleeping or waiting tasks equivalent to those on the runqueue. This means that interactive tasks which spend most of their time waiting for user input or other events get a comparable share of CPU time when they need it. The data structure used for the scheduling algorithm is a red-black tree in which the nodes are scheduler specific structures, entitled {{The Linux Kernel/id|sched_entity}}. These are derived from the general <code>task_struct</code> process descriptor, with added scheduler elements. These nodes are indexed by processor execution time in nanoseconds. A maximum execution time is also calculated for each process. This time is based upon the idea that an "ideal processor" would equally share processing power amongst all processes. Thus, the maximum execution time is the time the process has been waiting to run, divided by the total number of processes, or in other words, the maximum execution time is the time the process would have expected to run on an "ideal processor". With EEVDF, each task has a time slice ({{The Linux Kernel/id|sysctl_sched_base_slice}}, default 0.7ms) that determines its request length. EEVDF computes a virtual deadline for each task: vd_i = ve_i + r_i/w_i, where ve_i is the eligible time, r_i is the request size, and w_i is the weight (determined by nice value). The scheduler picks the eligible task with the earliest virtual deadline via {{The Linux Kernel/id|__pick_eevdf}}. The Linux kernel contains different scheduler classes (or policies). The CFS/EEVDF scheduler handles {{The Linux Kernel/id|SCHED_NORMAL}} (aka SCHED_OTHER). The kernel also contains two additional classes {{The Linux Kernel/id|SCHED_BATCH}} and {{The Linux Kernel/id|SCHED_IDLE}}, and another two real-time scheduling classes named {{The Linux Kernel/id|SCHED_FIFO}} (realtime first-in-first-out) and {{The Linux Kernel/id|SCHED_RR}} (realtime round-robin), with a third realtime scheduling policy known as {{The Linux Kernel/id|SCHED_DEADLINE}} that implements the {{w|Earliest deadline first scheduling|earliest deadline first algorithm (EDF)}} added later. Any realtime scheduler class takes precedence over any of the "normal" &mdash;i.e. non realtime&mdash; classes. The scheduler class is selected and configured through the {{The Linux Kernel/man|2|sched_setscheduler}} ↪ {{The Linux Kernel/id|do_sched_setscheduler}} system call. Properly balancing latency, throughput, and fairness in schedulers is an open problem.<ref name="malte" > Malte Skarupke. [https://probablydance.com/2019/12/30/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is/ "Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is"]. </ref> ⚲ API : {{The Linux Kernel/man|1|renice}} &ndash; priority of running processes : {{The Linux Kernel/man|1|nice}} &ndash; run a program with modified scheduling priority : {{The Linux Kernel/man|1|chrt}} &ndash; manipulate the real-time attributes of a process :: {{The Linux Kernel/man|2|sched_getattr}} ↪ {{The Linux Kernel/id|sys_sched_getattr}} &ndash; get scheduling policy and attributes : {{The Linux Kernel/include|linux/sched.h}} &ndash; the main scheduler API :: {{The Linux Kernel/id|schedule}} : {{The Linux Kernel/man|2|getpriority}}, {{The Linux Kernel/man|2|setpriority}} : {{The Linux Kernel/man|2|sched_setscheduler}}, {{The Linux Kernel/man|2|sched_getscheduler}} ⚙️ Internals :{{The Linux Kernel/id|sched_init}} is called from {{The Linux Kernel/id|start_kernel}} : {{The Linux Kernel/id|__schedule}} is the main scheduler function. : {{The Linux Kernel/id|runqueues}}, {{The Linux Kernel/id|this_rq}} : {{The Linux Kernel/source|kernel/sched}} : {{The Linux Kernel/source|kernel/sched/core.c}} : {{The Linux Kernel/source|kernel/sched/fair.c}} implements {{The Linux Kernel/id|SCHED_NORMAL}}, {{The Linux Kernel/id|SCHED_BATCH}}, {{The Linux Kernel/id|SCHED_IDLE}} :: {{The Linux Kernel/id|__pick_eevdf}} &ndash; core of EEVDF : {{The Linux Kernel/id|sched_setscheduler}}, {{The Linux Kernel/id|sched_getscheduler}} : {{The Linux Kernel/id|task_struct}}::{{The Linux Kernel/id|rt_priority}} and other members with less unique identifiers 🛠️ Utilities : {{The Linux Kernel/man|1|pidstat}} : {{The Linux Kernel/man|1|pcp-pidstat}} : {{The Linux Kernel/man|1|perf-sched}} : [https://opensource.googleblog.com/2019/10/understanding-scheduling-behavior-with.html Understanding Scheduling Behavior with SchedViz] 📖 References : {{The Linux Kernel/man|7|sched}} : {{The Linux Kernel/doc|Scheduling|scheduler}} :: {{The Linux Kernel/doc|EEVDF Scheduler|scheduler/sched-eevdf.html}} ::: [https://lwn.net/Kernel/Index/#Scheduler-EEVDF An EEVDF CPU scheduler for Linux LWN] : {{The Linux Kernel/doc|Delaying and scheduling routines|driver-api/basics.html#delaying-and-scheduling-routines}} : CFS :: {{The Linux Kernel/doc|Completely Fair Scheduler|scheduler/sched-design-CFS.html}} :: {{The Linux Kernel/doc|CFS Bandwidth Control|scheduler/sched-bwc.html}} :: [https://lwn.net/Kernel/Index/#Scheduler-Completely_fair_scheduler Completely fair scheduler LWN] :: [https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-tuning-taskscheduler.html Tuning the task scheduler] :: [https://home.robusta.dev/blog/stop-using-cpu-limits stop using CPU limits on Kubernetes] : {{The Linux Kernel/doc|Deadline Task Scheduler|scheduler/sched-deadline.html}} : {{The Linux Kernel/ltp|kernel|sched}} : {{The Linux Kernel/ltp|kernel/syscalls|sched_setparam}} : {{The Linux Kernel/ltp|kernel/syscalls|sched_getscheduler}} : {{The Linux Kernel/ltp|kernel/syscalls|sched_setscheduler}} 📚 Further reading about the scheduler : [https://github.com/iovisor/bpftrace/blob/master/docs/tutorial_one_liners.md#lesson-10-scheduler-tracing Scheduler tracing] : [https://github.com/iovisor/bcc/blob/master/README.md#cpu-and-scheduler-tools bcc/ebpf CPU and scheduler tools] === Preemption === Preemption refers to the ability of the system to interrupt a running task to switch to another task. This is essential for ensuring that high-priority tasks receive the necessary CPU time and for improving the system's responsiveness. In Linux, preemption models define how and when the kernel can preempt tasks. Different models offer varying trade-offs between system responsiveness and throughput. 📖 References : {{The Linux Kernel/doc|Proper Locking Under a Preemptible Kernel|locking/preempt-locking.html}} :: {{The Linux Kernel/id|preempt_enable}} &ndash; decrement the preempt counter :: {{The Linux Kernel/id|preempt_disable}} &ndash; increment the preempt counter :: {{The Linux Kernel/id|preempt_enable_no_resched}} &ndash; decrement, but do not immediately preempt :: {{The Linux Kernel/id|preempt_check_resched}} &ndash; if needed, reschedule :: {{The Linux Kernel/id|preempt_count}} &ndash; return the preempt counter : {{The Linux Kernel/source|kernel/Kconfig.preempt}} :: {{The Linux Kernel/id|CONFIG_PREEMPT_NONE}} &ndash; no forced preemption for servers :: {{The Linux Kernel/id|CONFIG_PREEMPT_VOLUNTARY}} &ndash; voluntary preemption for desktops :: {{The Linux Kernel/id|CONFIG_PREEMPT}} &ndash; preemptible except for critical sections for low-latency desktops :: {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} &ndash; real-time preemption for [[Embedded_Systems/Linux#Real-time|highly responsive applications]] :: {{The Linux Kernel/id|CONFIG_PREEMPT_DYNAMIC}}, see /sys/kernel/debug/sched/preempt === Wait queues === A ''wait queue'' in the kernel is a data structure that allows one or more processes to wait (sleep) until something of interest happens. They are used throughout the kernel to wait for available memory, I/O completion, message arrival, and many other things. In the early days of Linux, a wait queue was a simple list of waiting processes, but various scalability problems (including the {{w|thundering herd problem}}) have led to the addition of a fair amount of complexity since then. ⚲ API {{The Linux Kernel/include|linux/wait.h}} {{The Linux Kernel/id|wait_queue_head}} consists of double linked list of {{The Linux Kernel/id|wait_queue_entry}} and a spinlock. Waiting for simple events: : Use one of two methods for {{The Linux Kernel/id|wait_queue_head}} initialization: :: {{The Linux Kernel/id|init_waitqueue_head}} initializes {{The Linux Kernel/id|wait_queue_head}} in function context :: {{The Linux Kernel/id|DECLARE_WAIT_QUEUE_HEAD}} - actually defines {{The Linux Kernel/id|wait_queue_head}} in global context : Wait alternatives: :: {{The Linux Kernel/id|wait_event_interruptible}} - preferable wait :: {{The Linux Kernel/id|wait_event_interruptible_timeout}} :: {{The Linux Kernel/id|wait_event}} - uninterruptible wait. Can cause deadlock ⚠ : {{The Linux Kernel/id|wake_up}} etc 👁 For example usage see references to unique {{The Linux Kernel/id|suspend_queue}}. Explicit use of add_wait_queue instead of simple wait_event for complex cases: : {{The Linux Kernel/id|DECLARE_WAITQUEUE}} actually defines wait_queue_entry with {{The Linux Kernel/id|default_wake_function}} : {{The Linux Kernel/id|add_wait_queue}} inserts process in the first position of a wait queue : {{The Linux Kernel/id|remove_wait_queue}} ⚙️ Internals : {{The Linux Kernel/id|___wait_event}} : {{The Linux Kernel/id|__add_wait_queue}} : {{The Linux Kernel/id|__wake_up_common}}, {{The Linux Kernel/id|try_to_wake_up}} : {{The Linux Kernel/source|kernel/sched/wait.c}} 📖 References : {{The Linux Kernel/doc|Wait queues and Wake events|driver-api/basics.html#wait-queues-and-wake-events}} : [https://www.halolinux.us/kernel-reference/handling-wait-queues.html Handling wait queues] === Real-time === {{:The Linux Kernel/Multitasking/Real-time}} == Synchronization == Thread {{w|Synchronization (computer science)|synchronization}} is defined as a mechanism which ensures that two or more concurrent processes or threads do not simultaneously execute some particular program segment known as {{w|mutual exclusion}} (mutex). When one thread starts executing the critical section (serialized segment of the program) the other thread should wait until the first thread finishes. If proper synchronization techniques are not applied, it may cause a race condition where, the values of variables may be unpredictable and vary depending on the timings of context switches of the processes or threads. === User space synchronization === ==== POSIX Timers ==== ⚲ APIs : {{The Linux Kernel/man|2|timer_create}} – creates a POSIX timer : {{The Linux Kernel/man|2|timer_settime}} – starts or modifies a timer : {{The Linux Kernel/man|2|timer_gettime}} – retrieves the remaining time of a timer : {{The Linux Kernel/man|2|timer_delete}} – deletes a POSIX timer : {{The Linux Kernel/man|2|clock_nanosleep}} – suspends execution for a specified time ⚙️ Internals : {{The Linux Kernel/include|linux/posix-timers.h}} : {{The Linux Kernel/source|kernel/posix-timers.c}} : {{The Linux Kernel/source|kernel/time/itimer.c}} : {{The Linux Kernel/source|kernel/time/posix-timers.c}} : {{The Linux Kernel/source|kernel/time/posix-cpu-timers.c}} :: {{The Linux Kernel/id|posix_cpu_timer_set}} – function setting up CPU timers ==== Futex ==== A {{The Linux Kernel/man|2|futex}} ↪ {{The Linux Kernel/id|do_futex}} (short for "Fast User space muTex") is a kernel system call that programmers can use to implement basic locking, or as a building block for higher-level locking abstractions such as semaphores and POSIX mutexes or condition variables. A futex consists of a kernel space ''wait queue'' that is attached to an aligned integer in user space. Multiple processes or threads operate on the integer entirely in user space (using atomic operations to avoid interfering with one another), and only resort to relatively expensive system calls to request operations on the wait queue (for example to wake up waiting processes, or to put the current process on the wait queue). A properly programmed futex-based lock will not use system calls except when the lock is contended; since most operations do not require arbitration between processes, this will not happen in most cases. The basic operations of futexes are based on only two central operations {{The Linux Kernel/id|futex_wait}} and {{The Linux Kernel/id|futex_wake}} though implementation has a more operations for more specialized cases. : WAIT (''addr'', ''val'') checks if the value stored at the address ''addr'' is ''val'', and if it is puts the current thread to sleep. : WAKE (''addr'', ''val'') wakes up ''val'' number of threads waiting on the address ''addr''. ⚲ API : {{The Linux Kernel/include|uapi/linux/futex.h}} : {{The Linux Kernel/include|linux/futex.h}} ⚙️ Internals: {{The Linux Kernel/source|kernel/futex.c}} 📖 References : {{w|Futex}} : {{The Linux Kernel/man|7|futex}} : {{The Linux Kernel/doc|Futex API reference|kernel-hacking/locking.html#futex-api-reference}} : {{The Linux Kernel/ltp|kernel/syscalls|futex}} ==== File locking ==== ⚲ API: {{The Linux Kernel/man|2|flock}} ==== Semaphore ==== 💾 ''History: Semaphore is part of System V IPC {{The Linux Kernel/man|7|sysvipc}}'' ⚲ API : {{The Linux Kernel/man|2|semget}} : {{The Linux Kernel/man|2|semctl}} : {{The Linux Kernel/man|2|semget}} ⚙️ Internals: {{The Linux Kernel/source|ipc/sem.c}} === Kernel space synchronization === For kernel mode synchronization Linux provides three categories of locking primitives: sleeping, per CPU local locks and spinning locks. ==== Read-Copy-Update ==== Common mechanism to solve the readers–writers problem is the {{w|read-copy-update}} (''RCU'') algorithm. Read-copy-update implements a kind of mutual exclusion that is wait-free (non-blocking) for readers, allowing extremely low overhead. However, RCU updates can be expensive, as they must leave the old versions of the data structure in place to accommodate pre-existing readers. 💾 ''History: RCU was added to Linux in October 2002. Since then, there are thousandths uses of the RCU API within the kernel including the networking protocol stacks and the memory-management system. The implementation of RCU in version 2.6 of the Linux kernel is among the better-known RCU implementations.'' ⚲ The core API in {{The Linux Kernel/include|linux/rcupdate.h}} is quite small: : {{The Linux Kernel/id|rcu_read_lock}} marks an RCU-protected data structure so that it won't be reclaimed for the full duration of that critical section. : {{The Linux Kernel/id|rcu_read_unlock}} is used by a reader to inform the reclaimer that the reader is exiting an RCU read-side critical section. Note that RCU read-side critical sections may be nested and/or overlapping. : {{The Linux Kernel/id|synchronize_rcu}} blocks until all pre-existing RCU read-side critical sections on all CPUs have completed. Note that <code>synchronize_rcu</code> will ''not'' necessarily wait for any subsequent RCU read-side critical sections to complete. For example, consider the following sequence of events: {| class="wikitable" ! !CPU 0 !CPU 1 !CPU 2 |- |1. |rcu_read_lock() | | |- |2. | |enters synchronize_rcu() | |- |3. | | | rcu_read_lock() |- |4. |rcu_read_unlock() | | |- |5. | |exits synchronize_rcu() | |- |6. | | |rcu_read_unlock() |} [[File:Rcu api.jpg|thumb|upright=2|RCU API communications between the reader, updater, and reclaimer]] :Since <code>synchronize_rcu</code> is the API that must figure out when readers are done, its implementation is key to RCU. For RCU to be useful in all but the most read-intensive situations, <code>synchronize_rcu</code>'s overhead must also be quite small. :Alternatively, instead of blocking, synchronize_rcu may register a callback to be invoked after all ongoing RCU read-side critical sections have completed. This callback variant is called {{The Linux Kernel/id|call_rcu}} in the Linux kernel. : {{The Linux Kernel/id|rcu_assign_pointer}} - The updater uses this function to assign a new value to an RCU-protected pointer, in order to safely communicate the change in value from the updater to the reader. This function returns the new value, and also executes any [[memory barrier]] instructions required for a given CPU architecture. Perhaps more importantly, it serves to document which pointers are protected by RCU. : {{The Linux Kernel/id|rcu_dereference}} - The reader uses this function to fetch an RCU-protected pointer, which returns a value that may then be safely dereferenced. It also executes any directives required by the compiler or the CPU, for example, a volatile cast for gcc, a memory_order_consume load for C/C++11 or the memory-barrier instruction required by the old DEC Alpha CPU. The value returned by <code>rcu_dereference</code> is valid only within the enclosing RCU read-side critical section. As with <code>rcu_assign_pointer</code>, an important function of <code>rcu_dereference</code> is to document which pointers are protected by RCU. The RCU infrastructure observes the time sequence of <code>rcu_read_lock</code>, <code>rcu_read_unlock</code>, <code>synchronize_rcu</code>, and <code>call_rcu</code> invocations in order to determine when (1) <code>synchronize_rcu</code> invocations may return to their callers and (2) <code>call_rcu</code> callbacks may be invoked. Efficient implementations of the RCU infrastructure make heavy use of batching in order to amortize their overhead over many uses of the corresponding APIs. ⚲ API : [https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt#:~:text=rcu_nocbs%5B rcu_nocbs] &ndash; no-callback CPUs : {{The Linux Kernel/include|linux/rcupdate.h}} ⚙️ Internals : {{The Linux Kernel/source|kernel/rcu}} 📖 References : {{The Linux Kernel/doc|Avoiding Locks: Read Copy Update|kernel-hacking/locking.html?#avoiding-locks-read-copy-update}} : {{The Linux Kernel/doc|RCU concepts|RCU}} : [https://0xax.gitbooks.io/linux-insides/content/Initialization/linux-initialization-9.html RCU initialization] 📚 Further reading : [https://lpc.events/event/18/contributions/1906/attachments/1590/3302/LPC-2024-Vienna.pdf Reduce synchronize_rcu() latency] ==== Sleeping locks ==== ===== Mutexes ===== ⚲ API : {{The Linux Kernel/include|linux/mutex.h}} : {{The Linux Kernel/include|linux/completion.h}} : {{The Linux Kernel/id|mutex}} has owner and usage constrains, more easy to debug then semaphore :: {{The Linux Kernel/id|rt_mutex}} blocking mutual exclusion locks with priority inheritance (PI) support :: {{The Linux Kernel/id|ww_mutex}} Wound/Wait mutexes: blocking mutual exclusion locks with deadlock avoidance : {{The Linux Kernel/id|rw_semaphore}} readers–writer semaphores : {{The Linux Kernel/id|percpu_rw_semaphore}} : {{The Linux Kernel/id|completion}} - use completion for synchronization task with ISR and task or two tasks. :: {{The Linux Kernel/id|wait_for_completion}} :: {{The Linux Kernel/id|complete}} 💾 ''Historical'' : {{The Linux Kernel/id|semaphore}} - use mutex instead semaphore if possible : {{The Linux Kernel/include|linux/semaphore.h}} : {{The Linux Kernel/include|linux/rwsem.h}} 📖 References : {{The Linux Kernel/doc|Completions - “wait for completion” barrier APIs|scheduler/completion.html}} : {{The Linux Kernel/doc|Mutex API reference|kernel-hacking/locking.html#mutex-api-reference}} : [http://lwn.net/Articles/23993/ LWN: completion events] ==== per CPU local lock ==== On normal preemptible kernel local_lock calls {{The Linux Kernel/id|preempt_disable}}. On RT preemptible kernel local_lock calls {{The Linux Kernel/id|migrate_disable}} and {{The Linux Kernel/id|spin_lock}}. Any changes applied to spinlock_t also apply to local_lock. ⚲ API : {{The Linux Kernel/include|linux/local_lock.h}} :: {{The Linux Kernel/id|local_lock}}, {{The Linux Kernel/id|preempt_disable}} :: {{The Linux Kernel/id|local_lock_irqsave}}, {{The Linux Kernel/id|local_irq_save}} :: etc 📖 References : {{The Linux Kernel/doc|local_lock|locking/locktypes.html#local-lock}} : {{The Linux Kernel/doc|PREEMPT_RT caveats: spinlock_t, rwlock_t, migrate_disable and local_lock|locking/locktypes.html#spinlock-t-and-rwlock-t}} : {{The Linux Kernel/doc|Proper locking under a preemptive kernel|locking/preempt-locking.html}} : [https://lwn.net/Articles/828477/ Local locks in the kernel] 💾 ''History: Prior to kernel version 2.6, Linux disabled interrupt to implement short critical sections.'' ''Since version 2.6 and later, Linux is fully preemptive.'' ==== Spinning locks ==== ===== {{w|Spinlock}}s ===== a ''spinlock'' is a lock which causes a thread trying to acquire it to simply wait in a loop ("spin") while repeatedly checking if the lock is available. Since the thread remains active but is not performing a useful task, the use of such a lock is a kind of busy waiting. Once acquired, spinlocks will usually be held until they are explicitly released, although in some implementations they may be automatically released if the thread being waited on (that which holds the lock) blocks, or "goes to sleep". Spinlocks are commonly used inside kernels because they are efficient if threads are likely to be blocked for only short periods. However, spinlocks become wasteful if held for longer durations, as they may prevent other threads from running and require rescheduling. 👁 For example {{The Linux Kernel/id|kobj_kset_join}} uses spinlock to protect assess to the linked list. Enabling and disabling of kernel preemption replaced spinlocks on uniprocessor systems (disabled {{The Linux Kernel/id|CONFIG_SMP}}). Most spinning locks becoming sleeping locks in the {{The Linux Kernel/id|CONFIG_PREEMPT_RT}} kernels. ⚲ API : {{The Linux Kernel/include|linux/spinlock.h}} :: {{The Linux Kernel/id|spinlock_t}} :: {{The Linux Kernel/id|raw_spinlock_t}} : {{The Linux Kernel/include|linux/bit_spinlock.h}} :: {{The Linux Kernel/id|bit_spin_lock}} 📖 References : [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-1.html Introduction to spinlocks] : [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-2.html Queued spinlocks] ===== {{w|Seqlock}}s ===== A ''seqlock'' (short for "sequential lock") is a special locking mechanism used in Linux for supporting fast writes of shared variables between two parallel operating system routines. It is a special solution to the readers–writers problem when the number of writers is small. It is a reader-writer consistent mechanism which avoids the problem of writer starvation. A {{The Linux Kernel/id|seqlock_t}} consists of storage for saving a sequence counter {{The Linux Kernel/id|seqcount_t}}/seqcount_spinlock_t in addition to a lock. The lock is to support synchronization between two writers and the counter is for indicating consistency in readers. In addition to updating the shared data, the writer increments the sequence counter, both after acquiring the lock and before releasing the lock. Readers read the sequence counter before and after reading the shared data. If the sequence counter is odd on either occasion, a writer had taken the lock while the data was being read and it may have changed. If the sequence counters are different, a writer has changed the data while it was being read. In either case readers simply retry (using a loop) until they read the same even sequence counter before and after. 💾 ''History: The semantics stabilized as of version 2.5.59, and they are present in the 2.6.x stable kernel series. The seqlocks were developed by Stephen Hemminger and originally called frlocks, based on earlier work by Andrea Arcangeli. The first implementation was in the x86-64 time code where it was needed to synchronize with user space where it was not possible to use a real lock.'' ⚲ API : {{The Linux Kernel/id|seqlock_t}} :: {{The Linux Kernel/id|DEFINE_SEQLOCK}}, {{The Linux Kernel/id|seqlock_init}}, {{The Linux Kernel/id|read_seqlock_excl}}, {{The Linux Kernel/id|write_seqlock}} : {{The Linux Kernel/id|seqcount_t}} :: {{The Linux Kernel/id|seqcount_init}}, {{The Linux Kernel/id|read_seqcount_begin}}, {{The Linux Kernel/id|read_seqcount_retry}}, {{The Linux Kernel/id|write_seqcount_begin}}, {{The Linux Kernel/id|write_seqcount_end}} : {{The Linux Kernel/include|linux/seqlock.h}} 👁 Example: {{The Linux Kernel/id|mount_lock}}, defined in {{The Linux Kernel/source|fs/namespace.c}} 📖 References : {{The Linux Kernel/doc|Sequence counters and sequential locks|locking/seqlock.html}} : [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/linux-sync-6.html SeqLock] ==== Spinning or sleeping locks ==== :{| class="wikitable" ! !! normal !! on preempt RT |- | spinlock_t, || raw_spinlock_t || rt_mutex_base, rt_spin_lock, sleeping |- | rwlock_t || spinning || sleeping |- | local_lock || preempt_disable|| migrate_disable, rt_spin_lock, sleeping |} ==== Low level ==== The compiler might optimize away or reorder writes to variables leading to unexpected behavior when variables are accessed concurrently by multiple threads. ⚲ API : {{The Linux Kernel/include|asm-generic/rwonce.h}} &ndash; prevent the compiler from merging or refetching reads or writes. : {{The Linux Kernel/include|linux/compiler.h}} :: {{The Linux Kernel/id|barrier}} &ndash; prevents the compiler from reordering instructions around the barrier : {{The Linux Kernel/include|asm-generic/barrier.h}} &ndash; generic barrier definitions : {{The Linux Kernel/source|arch/x86/include/asm/barrier.h}} &ndash; force strict CPU ordering :: {{The Linux Kernel/id|mb}} &ndash; ensures that all memory operations before the barrier are completed before any memory operations after the barrier are started ⚙️ Internals : {{The Linux Kernel/doc|Atomics|driver-api/basics.html#atomics}} :: {{The Linux Kernel/include|asm-generic/atomic.h}} :: {{The Linux Kernel/include|linux/atomic/atomic-instrumented.h}} ::: {{The Linux Kernel/id|atomic_dec_and_test}} ... 📚 Further reading : {{w|Volatile_(computer_programming)#In_C_and_C++|volatile}} &ndash; prevents the compiler from optimizations : {{w|Memory barrier}} &ndash; enforces an ordering constraint on memory operations ==== ... ==== ⚙️ Locking internals : {{The Linux Kernel/include|linux/lockdep.h}} &ndash; runtime locking correctness validator : {{The Linux Kernel/include|linux/debug_locks.h}} : {{The Linux Kernel/source|lib/locking-selftest.c}} : {{The Linux Kernel/source|kernel/locking}} : {{The Linux Kernel/id|timer_list}} {{The Linux Kernel/id|wait_queue_head_t}} :: {{The Linux Kernel/source|kernel/locking/locktorture.c}} &ndash; module-based torture test facility for locking 📖 Locking references : {{The Linux Kernel/doc|locking|locking}} :: {{The Linux Kernel/doc|Lock types and their rules|locking/locktypes.html}} ::: 😴 {{The Linux Kernel/doc|sleeping locks|locking/locktypes.html#sleeping-locks}} :::: {{The Linux Kernel/id|mutex}}, {{The Linux Kernel/id|rt_mutex}}, {{The Linux Kernel/id|semaphore}}, {{The Linux Kernel/id|rw_semaphore}}, {{The Linux Kernel/id|ww_mutex}}, {{The Linux Kernel/id|percpu_rw_semaphore}} :::: on preempt RT: local_lock, spinlock_t, rwlock_t ::: 😵‍💫 {{The Linux Kernel/doc|spinning locks|locking/locktypes.html#spinning-locks}}: :::: raw_spinlock_t, bit spinlocks :::: on non preempt RT: spinlock_t, rwlock_t : {{The Linux Kernel/doc|Unreliable Guide To Locking|kernel-hacking/locking.html}} : [https://0xax.gitbooks.io/linux-insides/content/SyncPrim/ Synchronization primitives] === Time === ⚲ UAPI : {{The Linux Kernel/include|uapi/linux/time.h}} :: {{The Linux Kernel/id|timespec}} &ndash; nanosecond resolution :: {{The Linux Kernel/id|timeval}} &ndash; microsecond resolution :: {{The Linux Kernel/id|timezone}} :: ... : {{The Linux Kernel/include|uapi/linux/time_types.h}} :: {{The Linux Kernel/id|__kernel_timespec}} &ndash; nanosecond resolution, used in syscalls :: ... ⚲ API : {{The Linux Kernel/include|linux/delay.h}} &ndash; busy-wait delay functions for timing control : {{The Linux Kernel/include|linux/sched/clock.h}} :: {{The Linux Kernel/id|sched_clock}} :: ... : {{The Linux Kernel/include|linux/time.h}} :: {{The Linux Kernel/id|tm}} :: {{The Linux Kernel/id|get_timespec64}} :: ... : {{The Linux Kernel/include|linux/ktime.h}} :: {{The Linux Kernel/id|ktime_t}} &ndash; nanosecond scalar representation for kernel time values :: {{The Linux Kernel/id|ktime_sub}} :: ... : {{The Linux Kernel/include|linux/timekeeping.h}} :: {{The Linux Kernel/id|ktime_get}}, {{The Linux Kernel/id|ktime_get_ns}} :: {{The Linux Kernel/id|ktime_get_real}} :: ... : {{The Linux Kernel/include|linux/time64.h}} :: {{The Linux Kernel/id|timespec64}} :: {{The Linux Kernel/id|time64_t}} :: {{The Linux Kernel/id|ns_to_timespec64}} :: {{The Linux Kernel/id|timespec64_sub}} :: {{The Linux Kernel/id|ktime_to_timespec64}} :: ... : {{The Linux Kernel/include|uapi/linux/rtc.h}} : {{The Linux Kernel/include|linux/jiffies.h}} ⚙️ Internals : {{The Linux Kernel/source|kernel/time}} 📖 References : {{The Linux Kernel/doc|ktime accessors|core-api/timekeeping.html}} : {{The Linux Kernel/doc|Clock sources, Clock events, sched_clock() and delay timers|timers/timekeeping.html}} : {{The Linux Kernel/doc|Time and timer routines|driver-api/basics.html#time-and-timer-routines}} : {{w|Year 2038 problem}} {{:The Linux Kernel/Multitasking/CPU}} {{BookCat}} q71hekaq6b9rqhri8rqdd1l00z3o6ln User:Pamela Talemwa/sandbox/A Young Reader's Guide to a Clean and Healthy Community 2 485425 4668248 4667008 2026-09-03T12:26:45Z ~2026-47882-15 3625071 Edited structure 4668248 wikitext text/x-wiki == '''A Young Reader's Guide to a Clean and Healthy Community.''' == === Learning to Care for Our Environment, Our Health and Our Community === === Purpose of the Book: === === <small>The book aims to help children understand their role in creating and maintaining a clean, safe and healthy community.</small> === == '''Book Summary:''' == A Young Reader’s Guide to a Clean and Healthy Community is an educational book for Primary 4–6 learners that teaches children how to care for their homes, schools and communities. The book begins by helping children understand what a community is and why everyone has a responsibility to care for it. It then introduces proper waste management, protection of water sources, the importance of trees, teamwork and children's leadership. Through simple explanations, stories, activities and discussion questions, learners are encouraged to move from simply learning about environmental problems to taking positive action. === <u>Introduction:</u> === Our environment is our home. We live, learn, play and grow in it. Keeping it clean and healthy helps us stay safe and happy. This book teaches young readers simple ways to care for their homes, schools and communities. Through short stories, activities and questions, children will learn about rubbish, clean water, trees, teamwork and responsibility. Remember, '''small actions can make a big difference!''' ==== Chapter One: Our Community, Our Responsibility ==== *Understanding a community * Caring for our surroundings * Children's responsibilities == Chapter Two: Our Community, Our Responsibility == *Types of waste * Proper waste disposal * Reusing materials * Keeping schools and libraries clean ==== Chapter Three: Our Community, Our Responsibility ==== ==== Chapter Four: Our Community, Our Responsibility ==== ==== Chapter Five: Our Community, Our Responsibility ==== * '''Chapter Three: Water Is Life''' * Importance of water * Protecting water sources * Safe water practices * Effects of water pollution '''Chapter Four: Trees Are Our Friends''' * Importance of trees * Protecting and planting trees * Caring for gardens '''Chapter Five: Working Together''' * Teamwork * Community clean-ups * Helping neighbours * Children's leadership '''Chapter Six: Be a Young Community Champion''' * Taking responsibility * Being an environmental role model * Personal action plan * Community challenge === Expected Outcome: === The book will encourage children to practise good hygiene, protect the environment, work together and take responsibility for creating cleaner, safer and healthier communities. === Conclusion: === The book will remind young readers that everyone has a role to play in protecting the environment and that '''small actions can make a big difference'''. === References: === The information in this book is based on simple and trusted environmental and health resources, including: * World Health Organization (WHO) * UNICEF * United Nations Environment Programme (UNEP) * Uganda Ministry of Water and Environment * National Environment Management Authority (NEMA), Uganda * School textbooks on health and environmental studies. dj152bltnwxfodq9qdcf1ffy03y2xtb Art And AI 0 485449 4668422 4666454 2026-09-03T16:38:07Z 3MMPEYTON 3393808 Added categories 4668422 wikitext text/x-wiki == Art And AI == <br> '''Art And AI''' is a post-modern response to <u>Feed Your Head: Art, Truth, And The Machine</u> written by Minda Peyton with assistance from Microsoft Copilot AI. '''Art And AI''' aims to fill in the blank spaces that linger in <u>Feed Your Head: Art, Truth, And The Machine.</u><br> This book aims to expand major concepts found in '''Feed Your Head: Art, Truth, And The Machine''' by researching many Artists, Art concepts, and Art movements found in the book. <br> This book will focus on the evolving tools that built great works of Art. <br> <br> This wikibook starts by asking: Is AI a cultural failure ''because'' the technology works? <br> <br>Link: [[Art And AI/The Post Modern Paradox|Art And AI/The Post Modern Paradox - Wikibooks, open books for an open world]] {| class="wikitable" |+ Art And AI |- ! Modernism: The Artist's Tools |- | Palette knives |- | Print Making Machines |- | Photocopiers |- | Industrial house-painting brushes |- | Spray Paints |- | Airbrushes |- | Cameras |- | Collage Materials |- |} <br> {| class="wikitable" |+ |- ! Post-Modernism: The Artist's Tools |- | Time-lapse Equipment |- | Computers |- | Artificial Intelligence (AI) |- | AI driven Robots |- | Neural Networks |} {{BookCat}} [[Category:Book: Art And AI]] [[Category:Art - AI]] [[Category:Modernism in Art]] [[Category:Post-Modern Art]] lrr91cedsvpk3go185qxjhznnil6wff 4668423 4668422 2026-09-03T16:38:35Z 3MMPEYTON 3393808 4668423 wikitext text/x-wiki == Art And AI == <br> '''Art And AI''' is a post-modern response to <u>Feed Your Head: Art, Truth, And The Machine</u> written by Minda Peyton with assistance from Microsoft Copilot AI. '''Art And AI''' aims to fill in the blank spaces that linger in <u>Feed Your Head: Art, Truth, And The Machine.</u><br> This book aims to expand major concepts found in '''Feed Your Head: Art, Truth, And The Machine''' by researching many Artists, Art concepts, and Art movements found in the book. <br> This book will focus on the evolving tools that built great works of Art. <br> <br> This wikibook starts by asking: Is AI a cultural failure ''because'' the technology works? <br> <br>Link: [[Art And AI/The Post Modern Paradox|Art And AI/The Post Modern Paradox - Wikibooks, open books for an open world]] {| class="wikitable" |+ Art And AI |- ! Modernism: The Artist's Tools |- | Palette knives |- | Print Making Machines |- | Photocopiers |- | Industrial house-painting brushes |- | Spray Paints |- | Airbrushes |- | Cameras |- | Collage Materials |- |} <br> {| class="wikitable" |+ |- ! Post-Modernism: The Artist's Tools |- | Time-lapse Equipment |- | Computers |- | Artificial Intelligence (AI) |- | AI driven Robots |- | Neural Networks |} {{BookCat}} [[Category:Art - AI]] [[Category:Modernism in Art]] [[Category:Post-Modern Art]] 6qxu1icgyr2il6ohpekgnk06nl5aafs 4668431 4668423 2026-09-03T16:53:02Z 3MMPEYTON 3393808 4668431 wikitext text/x-wiki == Art And AI == <br> '''Art And AI''' is a post-modern response to <u>Feed Your Head: Art, Truth, And The Machine</u> written by Minda Peyton with assistance from Microsoft Copilot AI. '''Art And AI''' aims to fill in the blank spaces that linger in <u>Feed Your Head: Art, Truth, And The Machine.</u><br> This book aims to expand major concepts found in '''Feed Your Head: Art, Truth, And The Machine''' by researching many Artists, Art concepts, and Art movements found in the book. <br> This book will focus on the evolving tools that built great works of Art. <br> <br> This wikibook starts by asking: Is AI a cultural failure ''because'' the technology works? <br> <br> Part One <br>Introduction: [[Art And AI/The Post Modern Paradox|Art And AI/The Post Modern Paradox - Wikibooks, open books for an open world]] <br>Link: <br>Link: <br> <br> {| class="wikitable" |+ Art And AI |- ! Modernism: The Artist's Tools |- | Palette knives |- | Print Making Machines |- | Photocopiers |- | Industrial house-painting brushes |- | Spray Paints |- | Airbrushes |- | Cameras |- | Collage Materials |- |} <br> {| class="wikitable" |+ |- ! Post-Modernism: The Artist's Tools |- | Time-lapse Equipment |- | Computers |- | Artificial Intelligence (AI) |- | AI driven Robots |- | Neural Networks |} {{BookCat}} [[Category:Art - AI]] [[Category:Modernism in Art]] [[Category:Post-Modern Art]] clst4ziwf9xzflme0ropgdrn7iso3q6 4668432 4668431 2026-09-03T16:56:48Z 3MMPEYTON 3393808 4668432 wikitext text/x-wiki == Art And AI == <br> '''Art And AI''' is a post-modern response to <u>Feed Your Head: Art, Truth, And The Machine</u> written by Minda Peyton with assistance from Microsoft Copilot AI. '''Art And AI''' aims to fill in the blank spaces that linger in <u>Feed Your Head: Art, Truth, And The Machine.</u><br> This book aims to expand major concepts found in '''Feed Your Head: Art, Truth, And The Machine''' by researching many Artists, Art concepts, and Art movements found in the book. <br> This book will focus on the evolving tools that built great works of Art. <br> <br> This wikibook starts by asking: Is AI a cultural failure ''because'' the technology works? <br> <br> Part One <br>Introduction: [[Art And AI/The Post Modern Paradox|Art And AI/The Post Modern Paradox - Wikibooks, open books for an open world]] <br>[[Art_And_AI/The_Mythology_Of_The_Artist|The Mythology Of The Artist]] <br>Link: <br> <br> {| class="wikitable" |+ Art And AI |- ! Modernism: The Artist's Tools |- | Palette knives |- | Print Making Machines |- | Photocopiers |- | Industrial house-painting brushes |- | Spray Paints |- | Airbrushes |- | Cameras |- | Collage Materials |- |} <br> {| class="wikitable" |+ |- ! Post-Modernism: The Artist's Tools |- | Time-lapse Equipment |- | Computers |- | Artificial Intelligence (AI) |- | AI driven Robots |- | Neural Networks |} {{BookCat}} [[Category:Art - AI]] [[Category:Modernism in Art]] [[Category:Post-Modern Art]] omws6cxdsje0kg9k010w01bu7nerjif 4668433 4668432 2026-09-03T16:58:55Z 3MMPEYTON 3393808 /* Art And AI */ 4668433 wikitext text/x-wiki == Art And AI == <br> '''Art And AI''' is a post-modern response to <u>Feed Your Head: Art, Truth, And The Machine</u> written by Minda Peyton with assistance from Microsoft Copilot AI. '''Art And AI''' aims to fill in the blank spaces that linger in <u>Feed Your Head: Art, Truth, And The Machine.</u><br> This book aims to expand major concepts found in '''Feed Your Head: Art, Truth, And The Machine''' by researching many Artists, Art concepts, and Art movements found in the book. <br> This book will focus on the evolving tools that built great works of Art. <br> <br> This wikibook starts by asking: Is AI a cultural failure ''because'' the technology works? <br> <br> Part One <br>Introduction: [[Art And AI/The Post Modern Paradox|Art And AI/The Post Modern Paradox - Wikibooks, open books for an open world]] <br>[[Art_And_AI/The_Mythology_Of_The_Artist|The Mythology Of The Artist]] <br>[[Art_And_AI/The_Psychology_Of_Mastery|The Psychology Of Mastery]] <br> <br> {| class="wikitable" |+ Art And AI |- ! Modernism: The Artist's Tools |- | Palette knives |- | Print Making Machines |- | Photocopiers |- | Industrial house-painting brushes |- | Spray Paints |- | Airbrushes |- | Cameras |- | Collage Materials |- |} <br> {| class="wikitable" |+ |- ! Post-Modernism: The Artist's Tools |- | Time-lapse Equipment |- | Computers |- | Artificial Intelligence (AI) |- | AI driven Robots |- | Neural Networks |} {{BookCat}} [[Category:Art - AI]] [[Category:Modernism in Art]] [[Category:Post-Modern Art]] 2h6te98h9x7n1i5osgt4oazqet2ew8s 4668434 4668433 2026-09-03T17:09:19Z 3MMPEYTON 3393808 4668434 wikitext text/x-wiki == Art And AI == <br> '''Art And AI''' is a post-modern response to <u>Feed Your Head: Art, Truth, And The Machine</u> written by Minda Peyton with assistance from Microsoft Copilot AI. '''Art And AI''' aims to fill in the blank spaces that linger in <u>Feed Your Head: Art, Truth, And The Machine.</u><br> This book aims to expand major concepts found in '''Feed Your Head: Art, Truth, And The Machine''' by researching many Artists, Art concepts, and Art movements found in the book. <br> This book will focus on the evolving tools that built great works of Art. <br> <br> This wikibook starts by asking: Is AI a cultural failure ''because'' the technology works? <br> <br> Part One <br>Introduction: [[Art And AI/The Post Modern Paradox|Art And AI/The Post Modern Paradox - Wikibooks, open books for an open world]] <br>[[Art_And_AI/The_Mythology_Of_The_Artist|The Mythology Of The Artist]] <br>[[Art_And_AI/The_Psychology_Of_Mastery|The Psychology Of Mastery]] <br> <br> {| class="wikitable" |+ Art And AI |- ! Modernism: The Artist's Tools |- | Palette knives |- | Print Making Machines |- | Photocopiers |- | Industrial house-painting brushes |- | Spray Paints |- | Airbrushes |- | Cameras |- | Collage Materials |- |} <br> {| class="wikitable" |+ |- ! Post-Modernism: The Artist's Tools |- | Time-lapse Equipment |- | Computers |- | Artificial Intelligence (AI) |- | AI driven Robots |- | Neural Networks |} <br> {| class="wikitable" |+ |- ! Era of AI: The Artist's Tools |- | The Prompter |- |} {{BookCat}} [[Category:Art - AI]] [[Category:Modernism in Art]] [[Category:Post-Modern Art]] 63qvniym7oscbggudr0oihx3lx8lbh8 Art And AI/The Mythology Of The Artist 0 485450 4668329 4666466 2026-09-03T14:05:38Z 3MMPEYTON 3393808 /* The Mythology Of The Artist */ Added a link 4668329 wikitext text/x-wiki == The Mythology Of The Artist == <br> There is a magical, mythical mindset among the general public, that some Artists can perform feats that seem nearly impossible, more mythical than practical. <br> <br> Many people believe that talented Artists are capable of creating Artworks with just a few brushes, paper and paint. People think that using just their hands, Artists are able to communicate realistic images that rival actual photographs, or that Artists may conjure up works of beauty from the air, powered only by their imaginations. <br> <br> Being an Artist is a special profession that many people reach for, yet few are successful at. <br> Artist are not simply defined by their tools, or the techniques they have mastered, they are also defined by their vision, their ability to see what others overlook and bring it into the world. <br> The Artist archetype is the one who reveals the unseen. <br> <br> Throughout history, Artist held the role of myth-maker, a person who shaped cultural stories by reinterpreting old folklore, myths and legends into visual masterpieces. <br> <br> Famous mythological painters include: Gustav Moreau, John Waterhouse, Pablo Picasso and Leonora Carrington. <br> <br> '''The Mythic Persona:''' <br> <br> Art critics and Art historians often write about iconic Artist, such as Jackson Pollock or Frederic Church, painters who have achieved larger-than-life status, and massive followings. These mythic painters have their personal identity tied to the act of creation, or to the American landscape. Other mythic personas may be tied to outer space, such as the futuristic musician Sun Ra. <br> <br> According to '''<u>Feed Your Head: Art, Truth, And The Machine:</u>''' <br> In ancient traditions, the Artist was imagined as a vessel for divine inspiration, touched by muses or spirits. In the Renaissance, the Artist became a master of nature, capable of capturing reality with miraculous precision. [Feed Your Head: Art, Truth, And The Machine pg. 69] <br> <br> In our Post-Modern society, AI threatens these myths: <br> - The myth of the lone genius <br> - The romantic suffering Artist <br> - The idea that skill equates with moral worth <br> - The belief that mastery must be earned through pain and sacrifice. <br> - The cultural bias that kept Art ''special'' at the top of the hierarchy. <br> <br> Perhaps there is a cultural bias that views Art as having value because it is difficult to produce. In our Post-Modern era, there appears to be a cultural shift from individual mastery, towards collective labor and collective imagination. <br> <br> Link: https://en.wikibooks.org/wiki/Art_And_AI/The_Psychology_Of_Mastery p76ghi3azi65sx3k6mu80y4tzxkvgpd 4668426 4668329 2026-09-03T16:41:39Z 3MMPEYTON 3393808 4668426 wikitext text/x-wiki == The Mythology Of The Artist == <br> There is a magical, mythical mindset among the general public, that some Artists can perform feats that seem nearly impossible, more mythical than practical. <br> <br> Many people believe that talented Artists are capable of creating Artworks with just a few brushes, paper and paint. People think that using just their hands, Artists are able to communicate realistic images that rival actual photographs, or that Artists may conjure up works of beauty from the air, powered only by their imaginations. <br> <br> Being an Artist is a special profession that many people reach for, yet few are successful at. <br> Artist are not simply defined by their tools, or the techniques they have mastered, they are also defined by their vision, their ability to see what others overlook and bring it into the world. <br> The Artist archetype is the one who reveals the unseen. <br> <br> Throughout history, Artist held the role of myth-maker, a person who shaped cultural stories by reinterpreting old folklore, myths and legends into visual masterpieces. <br> <br> Famous mythological painters include: Gustav Moreau, John Waterhouse, Pablo Picasso and Leonora Carrington. <br> <br> '''The Mythic Persona:''' <br> <br> Art critics and Art historians often write about iconic Artist, such as Jackson Pollock or Frederic Church, painters who have achieved larger-than-life status, and massive followings. These mythic painters have their personal identity tied to the act of creation, or to the American landscape. Other mythic personas may be tied to outer space, such as the futuristic musician Sun Ra. <br> <br> According to '''<u>Feed Your Head: Art, Truth, And The Machine:</u>''' <br> In ancient traditions, the Artist was imagined as a vessel for divine inspiration, touched by muses or spirits. In the Renaissance, the Artist became a master of nature, capable of capturing reality with miraculous precision. [Feed Your Head: Art, Truth, And The Machine pg. 69] <br> <br> In our Post-Modern society, AI threatens these myths: <br> - The myth of the lone genius <br> - The romantic suffering Artist <br> - The idea that skill equates with moral worth <br> - The belief that mastery must be earned through pain and sacrifice. <br> - The cultural bias that kept Art ''special'' at the top of the hierarchy. <br> <br> Perhaps there is a cultural bias that views Art as having value because it is difficult to produce. In our Post-Modern era, there appears to be a cultural shift from individual mastery, towards collective labor and collective imagination. <br> <br> Link: https://en.wikibooks.org/wiki/Art_And_AI/The_Psychology_Of_Mastery '''<code><nowiki>{{</nowiki>[[Template:BookCat|BookCat]]<nowiki>}}</nowiki></code>''' qis0obbtqluw3w4qgrkldotzss98vd2 Art And AI/The Post Modern Paradox 0 485451 4668353 4666456 2026-09-03T14:41:36Z 3MMPEYTON 3393808 corrected a typo. 4668353 wikitext text/x-wiki == The Post-Modern Paradox == <br> "Is AI a cultural failure ''because'' the technology works?" This idea is a part of our Post-Modern Paradox: We got what we asked for. <br> For much of this modern era, people have believed the mantra: Better living through Science and Technology. <br> <br> Science and Technology have:<br> - Increased the food supply through advances in agriculture. <br> - Discovered lifesaving drugs in medicine. <br> - Supported longer lifespans <br> - Reduced child mortality <br> - Provided faster transportation <br> - Supported Industrial productivity <br> - Supported mass literacy <br> - Introduced The Digital Age <br> - Increased Smartphones and AI <br> People wanted: <br> - faster tools <br> - more efficient machines <br> - convenience <br> - mastery with less skills <br> <br> Technology delivered, yet culturally, Americans are panicked. <br> <br> What if smart tools like AI didn't break the promise of better living through Science and Technology, but fulfilled it too well? <br> <br> In Art, AI gives us: <br> - Instant technique <br> - Infinite variation <br> - Mastery without apprenticeship <br> - Imagination without skill barriers. <br> <br> Technology works, but is that our Post-Modern problem? <br> Previously, in pre-modern and Modern societies, the Artist had the burden of spending decades to learn: <br> - Anatomy <br> - Perspective <br> - Color theory <br> - Composition <br> - Material Science <br> - Gesture <br> <br> In the Art economy, their mastery was earned through scarcity: <br> - Few people had the opportunity to study Art. <br> - Few Artist became masters of Art. <br> - Few Artist could master Art consistently. <br> <br> In today's Post-Modern society, AI flips the Art economy on it's head! <br> - AI eliminates scarcity <br> - AI does not require apprenticeship <br> - AI shifts the hierarchy of technique, anyone can use AI to make good Art regardless of their skill-level. <br> <br> People who support and create Art feel: <br> - Cheated <br> - Displaced, culturally dethroned. <br> <br> Not because Art made using AI is "fake," but because AI democratizes mastery, opening opportunities to create masters' of Art to all people, and mastery was the last gatekeeping mechanism in Art. <br> <br> For Artist who have a special, creative role in the world, is life truly better through AI and Science? <br> <br> Link: https://en.wikibooks.org/wiki/Art_And_AI/The_Mythology_Of_The_Artist {{BookCat}} 7zhook2xfns17ahowa6dw8rhwlwsh8f 4668425 4668353 2026-09-03T16:40:53Z 3MMPEYTON 3393808 /* The Post-Modern Paradox */ 4668425 wikitext text/x-wiki == The Post-Modern Paradox == <br> "Is AI a cultural failure ''because'' the technology works?" This idea is a part of our Post-Modern Paradox: We got what we asked for. <br> For much of this modern era, people have believed the mantra: Better living through Science and Technology. <br> <br> Science and Technology have:<br> - Increased the food supply through advances in agriculture. <br> - Discovered lifesaving drugs in medicine. <br> - Supported longer lifespans <br> - Reduced child mortality <br> - Provided faster transportation <br> - Supported Industrial productivity <br> - Supported mass literacy <br> - Introduced The Digital Age <br> - Increased Smartphones and AI <br> People wanted: <br> - faster tools <br> - more efficient machines <br> - convenience <br> - mastery with less skills <br> <br> Technology delivered, yet culturally, Americans are panicked. <br> <br> What if smart tools like AI didn't break the promise of better living through Science and Technology, but fulfilled it too well? <br> <br> In Art, AI gives us: <br> - Instant technique <br> - Infinite variation <br> - Mastery without apprenticeship <br> - Imagination without skill barriers. <br> <br> Technology works, but is that our Post-Modern problem? <br> Previously, in pre-modern and Modern societies, the Artist had the burden of spending decades to learn: <br> - Anatomy <br> - Perspective <br> - Color theory <br> - Composition <br> - Material Science <br> - Gesture <br> <br> In the Art economy, their mastery was earned through scarcity: <br> - Few people had the opportunity to study Art. <br> - Few Artist became masters of Art. <br> - Few Artist could master Art consistently. <br> <br> In today's Post-Modern society, AI flips the Art economy on it's head! <br> - AI eliminates scarcity <br> - AI does not require apprenticeship <br> - AI shifts the hierarchy of technique, anyone can use AI to make good Art regardless of their skill-level. <br> <br> People who support and create Art feel: <br> - Cheated <br> - Displaced, culturally dethroned. <br> <br> Not because Art made using AI is "fake," but because AI democratizes mastery, opening opportunities to create masters' of Art to all people, and mastery was the last gatekeeping mechanism in Art. <br> <br> For Artist who have a special, creative role in the world, is life truly better through AI and Science? <br> <br> Link: https://en.wikibooks.org/wiki/Art_And_AI/The_Mythology_Of_The_Artist '''<code><nowiki>{{</nowiki>[[Template:BookCat|BookCat]]<nowiki>}}</nowiki></code>'''{{BookCat}} 2495ury54yknicq465u4juzildf5k66 4668437 4668425 2026-09-03T17:39:36Z 3MMPEYTON 3393808 4668437 wikitext text/x-wiki == The Post-Modern Paradox == <br> "Is AI a cultural failure ''because'' the technology works?" This idea is a part of our Post-Modern Paradox: We got what we asked for. <br> For much of this modern era, people have believed the mantra: Better living through Science and Technology. <br> <br> Science and Technology have:<br> - Increased the food supply through advances in agriculture. <br> - Discovered lifesaving drugs in medicine. <br> - Supported longer lifespans <br> - Reduced child mortality <br> - Provided faster transportation <br> - Supported Industrial productivity <br> - Supported mass literacy <br> - Introduced The Digital Age <br> - Increased Smartphones and AI <br> People wanted: <br> - faster tools <br> - more efficient machines <br> - convenience <br> - mastery with less skills <br> <br> Technology delivered, yet culturally, Americans are panicked. <br> <br> What if smart tools like AI didn't break the promise of better living through Science and Technology, but fulfilled it too well? <br> <br> In Art, AI gives us: <br> - Instant technique <br> - Infinite variation <br> - Mastery without apprenticeship <br> - Imagination without skill barriers. <br> <br> Technology works, but is that our Post-Modern problem? <br> Previously, in pre-modern and Modern societies, the Artist had the burden of spending decades to learn: <br> - Anatomy <br> - Perspective <br> - Color theory <br> - Composition <br> - Material Science <br> - Gesture <br> <br> In the Art economy, their mastery was earned through scarcity: <br> - Few people had the opportunity to study Art. <br> - Few Artist became masters of Art. <br> - Few Artist could master Art consistently. <br> <br> In today's Post-Modern society, AI flips the Art economy on it's head! <br> - AI eliminates scarcity <br> - AI does not require apprenticeship <br> - AI shifts the hierarchy of technique, anyone can use AI to make good Art regardless of their skill-level. <br> <br> People who support and create Art feel: <br> - Cheated <br> - Displaced, culturally dethroned. <br> <br> Not because Art made using AI is "fake," but because AI democratizes mastery, opening opportunities to create masters' of Art to all people, and mastery was the last gatekeeping mechanism in Art. <br> <br> For Artist who have a special, creative role in the world, is life truly better through AI and Science? <br> <br> Link: [[Art And AI/The Mythology Of The Artist|https://en.wikibooks.org/wiki/Art_And_AI/The_Mythology_Of_The_Artist]] '''<code><nowiki>{{</nowiki>[[Template:BookCat|BookCat]]<nowiki>}}</nowiki></code>'''{{BookCat}} 5ci6lgmrg19xojs9bf77ckt3a5ia2wb Chess Opening Theory/1. e4/1...c5/2. c3/2...d5/3. exd5/3...Nf6 0 485478 4668226 2026-09-03T12:00:46Z JCrue 2226064 created 4668226 wikitext text/x-wiki {{Chess Opening Theory/Position |name=Anti-Alapin gambit |eco=[[Chess/ECOB|B22]] |parent=[[Chess Opening Theory/1. e4/1...c5/2. c3|Alapin Sicilian]] → [[Chess Opening Theory/1. e4/1...c5/2. c3/2...d5|2...d5]] → [[../|3. exd5]] }} == 3...Nf6 · Anti-Alapin gambit == "Death to the 2. c3 Sicilian!" proclaimed Lakdawala & Hansen, in their 2022 book on this line.<ref name="lakdawala">{{Cite book |title=The Anti-Alapin Gambit |last=Lakdawala |first=Cyrus |publisher=CarstenChess |year=2022 |isbn=978-87-93812-37-6 |location=Bayonne, New Jersey |last2=Hansen |first2=Carsten}}</ref> Black does not recapture the pawn immediately, but first develops their knight. This resembles the [[Chess Opening Theory/1. e4/1...c5/2. f4/2...d5|Tal gambit after 2. f4!? d5 3. exd5 Nf6]]. === Decline the gambit === '''4. d4''' offers back the pawn to Black. Black could retake 4...Qxd5, as in the Barman variation, 3...Qxd5, but this move order allows them to capture with the knight instead, 4...Nxd5. This avoids transposing into more familiar Alapin positions. White has fewer ways to gain tempo on the knight than the queen, and after 5. Nf3 cxd4 6. cxd4 the knight is already blockading the isolated pawn. Because after 4. d4 Nxd5 5. Nf3 cxd4, White also has the option of 6. Nxd4, the alternative move order 4...cxd4, aiming for 5. cxd4 Nxd5, is sometimes seen. === Hold on to the pawn === By not retaking the pawn immediately, Black gives White the chance to defend it. In this sense it is a gambit: White can defend the d5 pawn with '''4. c4'''. Then, Black can play 4...e6 (threatens to take twice on d5 to recover the material) 5. exd6 Bxd6. Though White is up a pawn in material, Black has sufficient compensation in the form of activity. Black has two pieces developed and is ready to develop their king's bishop, while White has nothing developed. The game is about even. (White can't really avoid exd6 in this line. If 5. Qe2? to pin the pawn, then after ...Bd6 and ...O-O White is left with the same choice, and now their queen is mis-placed too). '''4. Bb5+''' first is a slight improvement. This seems more natural because it gets the bishop to an active square before blocking it with c4, and gets White closer to castling. If Black should trade off their light-square bishop (4...Bd7 5. Bxd7+ Qxd7), then without the bishop to recapture, Black's ...e6 idea is less potent: 6. c4 e6 7. Qe2! Bd6 8. dxe6 Qxe6 9. Qxe6+ fxe6 {{chess/not|+}}. Blocking the check with the knight is more common: 4...Nbd7 5. c4 a6 6. Bxd7 Bxd7 (6...Qxd7 is the recommendation of Lakdawala & Hansen)<ref name="lakdawala" /> and Black still has this idea of ...e6 dxe6 Bxe6. 7. d4! is a useful inclusion, where 7...e6 8. dxe6 Bxe6 9. d5! Bf5 {{chess/not|+}}, or 7...cxd4 8. Qxd4. Black does not have ...Nc6 to chase the queen, and this adds a defender to d5, so 8...e6 and White doesn't even have to take the pawn. '''4. Qa5+!''' is a way of hanging on to the pawn without losing the bishop pair. After 4...Nbd7 5. c4, if Black plays 5...e6 they must recapture with their f-pawn instead of their bishop. (The engine idea is the startling pawn sacrifice 5...b5! 6. Qxb5 Rb8 7. Qa4. Black can then play 7...Rb6 8. Nf3 e6 and recapture with the rook, 9. dxe6 Rxe6+). If 4...Bd7 instead, 5. Qb3 (attacks the b7 pawn) Qb6. If White tries to secure the pawn with 6. c4 now, the c-pawn hangs at the end of 6...e6 7. Qxb6 (to prevent ...Qxe6) axb6 8. dxe6 Bxe6 {{chess/not|=}} and Black has equalised. 6. Bc4! is a better way to defend the pawn. 6...e6? 7. dxe6 Bxe6 8. Bxe6 Qxe6+ 9. Qxe6+ fxe6 {{chess/not|++}}, White is up a pawn in the endgame. Black can try for 6...Na6 followed by ...Nc7 to win back the pawn instead. === History === 3...Nf6 was recorded in the British Championship in 1959, however the game continued 4. d4 Qxd5, transposing into the Barman variation.<ref>[https://www.chessgames.com/perl/chessgame?gid=1161368 Milner-Barry v Littlewood, 1959. Chessgames.com]</ref> Lakdawala & Hansen attribute some of the popularity of the line to it having been played by Magnus Carlsen in the Chessable Masters tournament in 2022.<ref name="lakdawala" /><ref>[https://www.chessgames.com/perl/chessgame?gid=2280396 Grandelius v Carlsen, 2022. Chessgames.com]</ref> A recent high-level appearance was at the 2023 World Blitz Championship, in a game between Ian Nepomniachtchi and Arjun Erigaisi.<ref>[https://www.chessgames.com/perl/chessgame?gid=2635583 Nepomniachtchi v Erigaisi, 2023. Chessgames.com]</ref> == Theory table == {{ChessTable}} {{ChessMid}} == References == {{reflist}} === See also === {{Chess Opening Theory/Footer}} bu20tzcwkpw5wu6sawf5npjprcw81pc Art And AI/The Psychology Of Mastery 0 485479 4668311 2026-09-03T13:48:41Z 3MMPEYTON 3393808 Created page with "== The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> === From Individual Mastery To Collective Imagination === <br> Modernism says:<br> '''- Mastery is noble:''' Modern Art masters are influential painters..." 4668311 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> === From Individual Mastery To Collective Imagination === <br> Modernism says:<br> '''- Mastery is noble:''' Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> '''- The Artist is a node in a network:''' The idea that the Artist is a node in a network shifts was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. Instead the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. AI says: - The network is the Artist: Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. st1osn1g75st801qv5i4erp8exrdklg 4668314 4668311 2026-09-03T13:50:29Z 3MMPEYTON 3393808 /* From Individual Mastery To Collective Imagination */ 4668314 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> === From Individual Mastery To Collective Imagination === <br> ==== Modernism says: ==== '''- Mastery is noble:''' Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> '''- The Artist is a node in a network:''' The idea that the Artist is a node in a network shifts was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. Instead the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. AI says: - The network is the Artist: Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. 586492ok69wm1ofrikehziocxen6865 4668317 4668314 2026-09-03T13:55:34Z 3MMPEYTON 3393808 /* Post-Modernism says: */ 4668317 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> === From Individual Mastery To Collective Imagination === <br> ==== Modernism says: ==== '''- Mastery is noble:''' Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> '''AI says:''' <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. 3hge7s485dgygejrkfqeyeldnkxuyc4 4668320 4668317 2026-09-03T14:03:53Z 3MMPEYTON 3393808 4668320 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> Traditional Masters' of Art spent lifetimes gathering skills needed to master Art techniques. Masters of Modern Art spent time reflecting their inner states. Perhaps they were Artist who had mastered Psychology. <br> <br> === From Individual Mastery To Collective Imagination === <br> ==== Modernism says: ==== '''- Mastery is noble:''' Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> '''AI says:''' <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. t590tfu5lck7n5lthoskwjs7eq5eqf5 4668336 4668320 2026-09-03T14:14:57Z 3MMPEYTON 3393808 /* Modernism says: */ 4668336 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> Traditional Masters' of Art spent lifetimes gathering skills needed to master Art techniques. Masters of Modern Art spent time reflecting their inner states. Perhaps they were Artist who had mastered Psychology. <br> <br> === From Individual Mastery To Collective Imagination === <br> ==== Modernism says: ==== '''- Mastery is noble:''' <br> Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' <br> Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' <br> Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> '''AI says:''' <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. bbb3go4fsu5vjqayunsupn9q43vejng 4668337 4668336 2026-09-03T14:20:21Z 3MMPEYTON 3393808 /* From Individual Mastery To Collective Imagination */ 4668337 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> Traditional Masters' of Art spent lifetimes gathering skills needed to master Art techniques. Masters of Modern Art spent time reflecting their inner states. Perhaps they were Artist who had mastered Psychology. <br> <br> === From Individual Mastery To Collective Imagination === ''' <br> === Modernism says: === <br> '''- Mastery is noble:''' <br> Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' <br> Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' <br> Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> '''AI says:''' <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. gp4u8fbmz3ag1ltuuwxd6k77d751twt 4668338 4668337 2026-09-03T14:23:41Z 3MMPEYTON 3393808 /* Post-Modernism says: */ 4668338 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> Traditional Masters' of Art spent lifetimes gathering skills needed to master Art techniques. Masters of Modern Art spent time reflecting their inner states. Perhaps they were Artist who had mastered Psychology. <br> <br> === From Individual Mastery To Collective Imagination === ''' <br> === Modernism says: === <br> '''- Mastery is noble:''' <br> Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' <br> Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' <br> Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' <br> Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' <br> Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' <br> The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> '''AI says:''' <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. hmriwzwqy0jtcm0f611hxninipw3rdz 4668339 4668338 2026-09-03T14:24:47Z 3MMPEYTON 3393808 /* Post-Modernism says: */ 4668339 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> Traditional Masters' of Art spent lifetimes gathering skills needed to master Art techniques. Masters of Modern Art spent time reflecting their inner states. Perhaps they were Artist who had mastered Psychology. <br> <br> === From Individual Mastery To Collective Imagination === ''' <br> === Modernism says: === <br> '''- Mastery is noble:''' <br> Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' <br> Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' <br> Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' <br> Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' <br> Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' <br> The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> === '''AI says:''' === <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. roef0k93sova418gn2rwc2ywbjvrj10 4668427 4668339 2026-09-03T16:42:17Z 3MMPEYTON 3393808 Added {{BookCat}} 4668427 wikitext text/x-wiki == The Psychology of Mastery == <br> Psychology is the Science that studies the human mind and human behavior. <br> <br> During the era of Modernism, many Artists turned their focus away from reflecting the real world around them, towards reflecting their inner states: their emotions, dreams and inner visions. <br> <br> Traditional Masters' of Art spent lifetimes gathering skills needed to master Art techniques. Masters of Modern Art spent time reflecting their inner states. Perhaps they were Artist who had mastered Psychology. <br> <br> === From Individual Mastery To Collective Imagination === ''' <br> === Modernism says: === <br> '''- Mastery is noble:''' <br> Modern Art masters are influential painters and sculptors who broke away from traditional forms, influencing Art in the late 19th and 20th centuries. <br> <br> Modern Art masters include Pablo Picasso, Henri Matisse, Wassily Kandinsky, Joan Miro, and Marc Chagall. <br> <br> '''- Technique is identity:''' <br> Many Artist built their entire artistic identity around a unique, signature technique that defined their work and made them instantly recognized. <br> <br> Jackson Pollock used the drip painting technique. George Seurat invented Pointillism, and Roy Lichtenstein based his Pop Art identity on Ben-Day dots. <br> <br> '''- The Artist is a hero:''' <br> Paul Cezanne is an example of a modernist hero as is Vincent Van Gogh. <br> <br> Paul Cezanne is viewed as a lonely genius who waged a heroic battle against state-controlled Art academies, laying the foundation for modern abstraction. <br> <br> Although Vincent Van Gogh pre-dated Modernism, he is seen as the ultimate archetype of the hero. His tragic, solitary life, and his expressive brushwork heavily inspired the avant-garde movements that followed. <br> <br> === Post-Modernism says: === '''- Meaning is fluid:''' <br> Cindy Sherman is an Artist famous for her Untitled Film Stills series. Sherman photographs herself staging cliched female personas from 1950s and 60s cinema. Because she never captures a authentic self, her identity becomes entirely fluid, performable, and fragmented. By allowing the viewers to project their own cultural assumptions and cultural background about who Cindy is, the Artist proves that meaning and identity are constructs. <br> <br> '''- Authorship is shared:''' <br> Post-Modern Artists who share or challenge traditional authorship have collaborated, forming creative duos, or have appropriated Art in their attempt to question individual creative ownership. <br> Famous collaborative duos include Andy Warhol and Jean-Michel Basquiat. They produced over 160 joint works in 1980s New York. <br> Sherrie Levine, a famous appropriation Artist, has re-photographed and exhibited famous works by photographers like Walker Evans. Levine argued that authorship was defined by use rather than original creation. <br> <br> '''- The Artist is a node in a network:''' <br> The idea that the Artist is a node in a network was coined by Nicolas Bourriaud in the late 1990s. This shifts away from the idea of the Artist as a lone, heroic genius. <br> Instead, the Artist is seen as a social conduit connecting information, communities, and digital infrastructures. <br> <br> === '''AI says:''' === <br> '''- The network is the Artist:''' Some people argue that typing in the prompt to generate an image is like commissioning a human painter. The prompt provides the idea, but the system executes the work. '''<code><nowiki>{{</nowiki>[[Template:BookCat|BookCat]]<nowiki>}}</nowiki></code>''' f77cmftw4czo7wyq65h5pta347wqsu2 Songbook/Silent Night 0 485480 4668363 2026-09-03T14:53:23Z Ashaio 155977 New song: Silent Night 4668363 wikitext text/x-wiki {{:Songbook/template:songheader |type = Christmas carol |alternative = |text = Joseph Mohr, John F. Young |melody = Franz X. Gruber |key = C major |arranger = Ashaio }} <score raw = "1" vorbis = "1"> \version "2.12.3" \header { title = "Silent Night" poet = "Lyrics: Joseph Mohr" meter = "Translation: John F. Young" composer = "Music: Franz X. Gruber" tagline = "" } \layout { indent = #0 } akordy = \chordmode { \set chordChanges = ##t c,1*3/4 c, g, c, f, c, f, c, g, a,:m c,1*3/8 g, c,1*3/4 } global = { \autoBeamOff % \key d \major \time 6/8 \tempo 4. = 50 } melodia = { \global \relative g' { \stemUp g8.[( a16]) g8 e4. | g8.[( a16]) g8 e4. | d'4 d8 b4. | c4 c8 g4. | a4 a8 c8.[ b16] a8 | g8.[ a16] g8 e4 e8 | a4 a8 c8. b16 a8 | g8.[ a16] g8 e4 e8 | d'4 d8 f8. d16 b8 | c4.( e4) r8 | c8.[( g16]) e8 g8. f16 d8 | c4.( c4) r8 | } } tekst = \lyricmode { Si -- lent night! Ho -- ly night! All is calm, all is bright Round yon vir -- gin mo -- ther and child! Ho -- ly in -- fant, so ten -- der and mild, Sleep in hea -- ven -- ly peace! Sleep in hea -- ven -- ly peace! } \score { << \new ChordNames { \akordy } \new Voice = "Air" { \melodia } \new Lyrics \lyricsto "Air" { \tekst } >> \midi {} \layout {} } </score> '''Source''': Melody based on: Piotr Maszyński (1855–1934), ''[https://polona.pl/item-view/6d03ff68-e6c5-4a0b-8eb5-c88b2fd436b1?page=1 Święta noc]''. Warszawa, [1922-1924]. Chords: [[User:Ashaio|Ashaio]] (CC-0). <poem> {{crd|C}}Silent night! {{crd|C}} Holy night! {{crd|G}}All is calm, {{crd|C}}all is bright {{crd|F}}Round yon virgin {{crd|C}}mother and child! {{crd|F}}Holy infant, so {{crd|C}} tender and mild, {{crd|G}}Sleep in heavenly {{crd|a}} peace! {{crd|C}}Sleep in {{crd|G}} heavenly {{crd|C}} peace! {{crd|C}}Silent night! {{crd|C}}Holy night! {{crd|G}}Shepherds quake {{crd|C}} at the sight! {{crd|F}}Glories stream {{crd|C}} from heaven afar, {{crd|F}}Heavenly hosts {{crd|C}} sing Alleluia! {{crd|G}}Christ the Saviour is {{crd|a}} born! {{crd|C}}Christ the {{crd|G}} Saviour is {{crd|C}} born! {{crd|C}}Silent night! {{crd|C}}Holy night! {{crd|G}}Son of God, {{crd|C}}love's pure light {{crd|F}}Radiant beams from thy {{crd|C}} holy face {{crd|F}}With the dawn of re{{crd|C}}deeming grace, {{crd|G}}Jesus, Lord, at thy {{crd|a}} birth! {{crd|C}}Jesus, {{crd|G}}Lord, at thy {{crd|C}} birth! </poem> [[Category:Book:Songbook]] [[Category:Book:Songbook/Songs]] [[Category:Book:Songbook/Songs in English]] 7xxbzj5yxh4iqyvf2i778e1okhdl1v9 Talk:Art And AI 1 485481 4668428 2026-09-03T16:44:40Z 3MMPEYTON 3393808 /* What does [bookcat] do? */ new section 4668428 wikitext text/x-wiki == What does [bookcat] do? == Hello, <br> Can anyone tell me what [BookCat] does? Thanks. [[User:3MMPEYTON|3MMPEYTON]] ([[User talk:3MMPEYTON|discuss]] • [[Special:Contributions/3MMPEYTON|contribs]]) 16:44, 3 September 2026 (UTC) net5p3z3ezshkahvswasio84fb3npkq Art And AI/Artist Strike 0 485483 4668489 2026-09-03T23:59:16Z 3MMPEYTON 3393808 Added 8 paragraphs 4668489 wikitext text/x-wiki == Artists Strike? == According to Feed Your Head: Art, Truth, And The Machine: Technology makes creating Art easier. In the modern era, Technology made capturing nature and better likenesses of people, easy with the camera, which creates photographs. Yet many Artists embraced a minimal technique, or embraced their imaginations. Did they go on strike? Striking against realism in order to remain true to their craft? [Feed Your Head: Art, Truth, And The Machine pg. 5] Could Professional Artist during the 20th century, have privately gone on strike in a personal rebellion against modern technological advancements, such as the camera? In Feed Your Head: Art, Truth, And The Machine, Copilot [AI] suggests that Modernism may have been a "cultural pivoting point where technology first collided with artistic identity." "...Modernism wasn't just a style shift; it was a reaction -- almost a strike -- against the camera, against realism, against the machine." Copilot shapes it's argument carefully, by suggesting that the camera was more than a technological disruption, it was existential. For thousands of years, Realism was the pinnacle of artistic development. Realism required mastery of: <br> - Anatomy <br> - Perspective <br> - Light <br> - Likeness <br> Suddenly, a machine could capture realistic images better, faster, with greater accuracy. Perhaps Modernism is the strike. <br> When Artist abandoned Realism, they started creating Art from their imagination, dreams, abstractions, gestures, emotions, distortions, symbolism, and subconscious imagery. <br> In a historic pivot, they rejected Realism, classical techniques, and the idea that Art must imitate nature. Modernism may have been a strategic ''cultural rebellion''. === Is It still Art if it's not made with Art supplies? === A equally important group of Artist in the early 19th century embraced the camera. Although Photographers were mocked as "button-pushers," and people denounced photography as Art because it lacked human touch, or because people thought it was cheating, Photography eventually became Fine Art, Documentary Art, Fashion Art, Surrealist Art, and Conceptual Art. There were many Artist who believed that Technology was not the enemy of Art, but that it was the evolution of Art. <br> Two early Art heroes on the side of technology were Alfred Stieglitz and Man Ray. elg1n013tjhw6oa79ksyxww4fn4mkg8 4668490 4668489 2026-09-04T00:00:47Z 3MMPEYTON 3393808 4668490 wikitext text/x-wiki == Artists Strike? == According to <u>Feed Your Head: Art, Truth, And The Machine:</u> Technology makes creating Art easier. In the modern era, Technology made capturing nature and better likenesses of people, easy with the camera, which creates photographs. Yet many Artists embraced a minimal technique, or embraced their imaginations. Did they go on strike? Striking against realism in order to remain true to their craft? [Feed Your Head: Art, Truth, And The Machine pg. 5] Could Professional Artist during the 20th century, have privately gone on strike in a personal rebellion against modern technological advancements, such as the camera? In <u>Feed Your Head: Art, Truth, And The Machine</u>, Copilot [AI] suggests that Modernism may have been a "cultural pivoting point where technology first collided with artistic identity." "...Modernism wasn't just a style shift; it was a reaction -- almost a strike -- against the camera, against realism, against the machine." Copilot shapes it's argument carefully, by suggesting that the camera was more than a technological disruption, it was existential. For thousands of years, Realism was the pinnacle of artistic development. Realism required mastery of: <br> - Anatomy <br> - Perspective <br> - Light <br> - Likeness <br> Suddenly, a machine could capture realistic images better, faster, with greater accuracy. Perhaps Modernism is the strike. <br> When Artist abandoned Realism, they started creating Art from their imagination, dreams, abstractions, gestures, emotions, distortions, symbolism, and subconscious imagery. <br> In a historic pivot, they rejected Realism, classical techniques, and the idea that Art must imitate nature. Modernism may have been a strategic ''cultural rebellion''. === Is It still Art if it's not made with Art supplies? === A equally important group of Artist in the early 19th century embraced the camera. Although Photographers were mocked as "button-pushers," and people denounced photography as Art because it lacked human touch, or because people thought it was cheating, Photography eventually became Fine Art, Documentary Art, Fashion Art, Surrealist Art, and Conceptual Art. There were many Artist who believed that Technology was not the enemy of Art, but that it was the evolution of Art. <br> Two early Art heroes on the side of technology were Alfred Stieglitz and Man Ray. 7jlylw6w2725ik1a9z5z7jkwbt4kgtw Art And AI/Welcome To The Machine 0 485484 4668491 2026-09-04T00:25:06Z 3MMPEYTON 3393808 Created page with "== The Modernist Who Welcomed The Machine == <br> Although some Artist may have went on strike against Realism, retreating to realms where Technology could not follow, other Artist embraced the new Technology. They saw Technology as a new set of tools, expanding the boundaries of what Art could be. <br> <br> These Modernist embraced: <br> - Industrial Materials <br> - Film <br> - Photography <br> - Mechanical Reproduction <br> - Electricity <br> - Mass Media <br> - Autom..." 4668491 wikitext text/x-wiki == The Modernist Who Welcomed The Machine == <br> Although some Artist may have went on strike against Realism, retreating to realms where Technology could not follow, other Artist embraced the new Technology. They saw Technology as a new set of tools, expanding the boundaries of what Art could be. <br> <br> These Modernist embraced: <br> - Industrial Materials <br> - Film <br> - Photography <br> - Mechanical Reproduction <br> - Electricity <br> - Mass Media <br> - Automation <br> - Abstraction inspired by machinery <br> <br> Art Movements: <br> - Futurists <br> - Constructivists <br> - Bauhaus Artists <br> - Duchamp <br> - Moholy-Nagy <br> === Alfred Stieglitz === According to Wikipedia, "Alfred Stieglitz was an American Photographer and modern Art promoter who was instrumental over his 50-year career in making Photography an accepted Art form." [https://en.wikipedia.org/wiki/Alfred_Stieglitz] 4beavpi0j9e6fk6x64zug3l5yiejrpx 4668492 4668491 2026-09-04T00:46:53Z 3MMPEYTON 3393808 /* Alfred Stieglitz */ Added 3 paragraphs 4668492 wikitext text/x-wiki == The Modernist Who Welcomed The Machine == <br> Although some Artist may have went on strike against Realism, retreating to realms where Technology could not follow, other Artist embraced the new Technology. They saw Technology as a new set of tools, expanding the boundaries of what Art could be. <br> <br> These Modernist embraced: <br> - Industrial Materials <br> - Film <br> - Photography <br> - Mechanical Reproduction <br> - Electricity <br> - Mass Media <br> - Automation <br> - Abstraction inspired by machinery <br> <br> Art Movements: <br> - Futurists <br> - Constructivists <br> - Bauhaus Artists <br> - Duchamp <br> - Moholy-Nagy <br> === Alfred Stieglitz === According to Wikipedia, "Alfred Stieglitz was an American Photographer and modern Art promoter who was instrumental over his 50-year career in making Photography an accepted Art form." [https://en.wikipedia.org/wiki/Alfred_Stieglitz] <br> <br> Stieglitz spent decades proving that Photography was a new artistic language. <br> He did this through: <br> - Exhibitions <br> - Essays <br> - Galleries <br> - Mentorships <br> - His own photographs <br> He proved that Photography could be abstract, symbolic, emotional and non-representational. <br> 42ktycfu09yrhtv7gcts4ycf9mv2lyl